alibaba / jetcache

JetCache is a Java cache framework.
Apache License 2.0
5.03k stars 1.05k forks source link

关于本地缓存的剔除 #837

Open wp973 opened 9 months ago

wp973 commented 9 months ago

想问下大佬,有这么一个场景:

短时间内Redis中大批量key被更新了,这时候我们会不断地剔除本地缓存,可能会造成本地缓存失效,缓存穿透

想问下本地缓存的剔除,JetCache有做速率限制么?

areyouok commented 9 months ago

没有这个限制。如果写多读少的话,建议就不要做本地缓存了

wp973 commented 9 months ago

嗯,可能有这种情况,redis中数据一天更新一次,然后更新方法是使用的DataX,速率比较快

areyouok commented 9 months ago

正常来说,同步的流程限速就要堵塞上游。否则上游处理飞快,下游又想限速,那中间这些数据存储在哪,存在jvm里面肯定会爆的。

削峰填谷,那是消息队列的事,不该由缓存框架来干。

wp973 commented 9 months ago

嗯对的,下游消费确实不应该限速。

但是对于消费方,可不可以把消费到的数据放到一个队列里(如concurrentLinkedQueue),然后自己去控制缓存剔除的速率,这样是否可行呢?:D

areyouok commented 9 months ago

这样做JVM有OOM的风险,而且还要引入限流类库的依赖,这只能靠你自己解决了,如果需要你可以改改代码

wp973 commented 9 months ago

嗯嗯了解了,感谢大佬的回复!-v-