缓存策略问题

来源:12-12 实现本地缓存

慕码人1018289

2020-03-29

老师您好,咱们真实项目中,如果使用Redis这种分布式缓存,缓存的同步策略,也是查询写缓存,增删改的时候使缓存全部失效吗?Spring提供的CachePut是不是很少用呢?如果允许查询有一定时间上的延迟,考虑增删改的时候不动缓存,查的话每10分钟取一次数据库,但只会有一个实例去取,其他实例都使用老缓存,取好的那个更新缓存,只会的请求都取新缓存。Spring、Caffeine、Redis有没有这样策略的简单实现呢?

写回答

1回答

张小喜

2020-03-29

第一个问号和第二个问号:一般不会让所有缓存都失效,会利用@CachePut(新增数据时同时写入缓存)和@CacheEvict(更新或删除数据时清除指定数据缓存)的方式来管理缓存。

第三个问号:明白你的意思,一般这样的实现方式都会直接开一个任务调度线程来专门负责定时更新缓存这个事儿。就是增删改查操作都不动缓存,只依靠任务调度来定时同步缓存数据。但是这样的场景比较少,会有很长时间的数据不一致情况。

关于缓存这块儿的知识点比较多,比如:缓存如何预热,如何防止穿透或雪崩等等。在实操那一小节没深入的讲。也有小伙伴说过比较感兴趣这块儿。后期计划单独整理一下这部分内容,好好讲一讲,还是比较有意思的。记得关注我,做好了会通知大家的哈。

0
4
慕UI0546731
回复
张小喜
老师,两年了,搞快点~~~钱包时刻为你准备着
2022-03-24
共4条回复

Java高效编程技巧实践 告别996

可以改变的编程效率

1451 学习 · 326 问题

查看课程