采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,咱们真实项目中,如果使用Redis这种分布式缓存,缓存的同步策略,也是查询写缓存,增删改的时候使缓存全部失效吗?Spring提供的CachePut是不是很少用呢?如果允许查询有一定时间上的延迟,考虑增删改的时候不动缓存,查的话每10分钟取一次数据库,但只会有一个实例去取,其他实例都使用老缓存,取好的那个更新缓存,只会的请求都取新缓存。Spring、Caffeine、Redis有没有这样策略的简单实现呢?
第一个问号和第二个问号:一般不会让所有缓存都失效,会利用@CachePut(新增数据时同时写入缓存)和@CacheEvict(更新或删除数据时清除指定数据缓存)的方式来管理缓存。
第三个问号:明白你的意思,一般这样的实现方式都会直接开一个任务调度线程来专门负责定时更新缓存这个事儿。就是增删改查操作都不动缓存,只依靠任务调度来定时同步缓存数据。但是这样的场景比较少,会有很长时间的数据不一致情况。
关于缓存这块儿的知识点比较多,比如:缓存如何预热,如何防止穿透或雪崩等等。在实操那一小节没深入的讲。也有小伙伴说过比较感兴趣这块儿。后期计划单独整理一下这部分内容,好好讲一讲,还是比较有意思的。记得关注我,做好了会通知大家的哈。
非常感谢您的回复!您回复的真快啊!很期待您的缓存策略新章节!
应该的。因为在忙其他事儿,我尽量挤时间尽快整理,争取不让小伙伴们等太久。
CachePut只限于新增时同时写入缓存吗,如果修改和删除呢,会更新缓存吗
登录后可查看更多问答,登录/注册
可以改变的编程效率
1.6k 8
953 7
860 7
1.2k 6
939 6