缓存方案
有更新,清除所有缓存,殃及池鱼,
有更新,精准删除,仅删除 满足更新条件的缓存
无法检测 缓存是否是最新数据,因为可能真是数据被删除了,缓存服务器没法知道,
过期策略,
过期类型,Deadline,Duration,Value
被动清理缓存,
过期方式
永久过期,
绝对过期, 有个时间点,超过就过期
滑动过期(相对), 多久之后过期,如果期间更新或查询,就延长过期时间。
主动清理缓存,
开启线程检测是否过期,清理缓存
缓存的多线程访问会有问题,
需要锁来控制访问,
lock each one , add ,remove, get, update,但是并发性能有问题
或者使用线程安全容器
ConcurrentDicitonary ,但是还是有性能问题,
多个数据容器,多个锁,容器之间可以并发,(容器分片),增加并发量。
动态初始化多个容器,
多个容器查找就需要规则,
string key,
int containIndex = key.getHascode()% cpuNumber, 确定容器和锁
缓存使用条件,特点
访问频繁,耗时耗资源,体积不那么大,
存一次能查3次,就值得缓存,(大型项目),
例如,
省市区,配置文件,公告,部门,权限,热搜,类别列表,目录树,产品列表,用户信息。
即时性要求较高不能缓存
图片视频不能缓存,