alibaba / jetcache

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

本地缓存实时失效方案 #817

Open zhaojinhua123 opened 11 months ago

zhaojinhua123 commented 11 months ago

分布式场景下,使用二级缓存时,有推荐的缓存失效方案吗

areyouok commented 11 months ago

看下文档,指定个broadcastChannel就行了

zhaojinhua123 commented 11 months ago

看下文档,指定个broadcastChannel就行了

看到了,指定broadcastchannel之后失效,通过cacheManager将缓存对象更新后,redis远程缓存也会更新,同时其他节点本地缓存会同步更新对吗,另外,broadcastChannel是如何实现的呢

areyouok commented 11 months ago

通过pub/sub发通知,让其它进程的对应cache失效

zhaojinhua123 commented 11 months ago

application文件配置了broadcastChannel,使用@CacheInvalidate删除缓存,其他节点本地缓存未失效,broadcastChannel有详细介绍说明吗 image

zhaojinhua123 commented 11 months ago

在方法上通过@Cached注解添加的缓存,syncLocal默认值为false吗,如果为false,怎么修改呢

zhaojinhua123 commented 11 months ago

syncLocal

在方法上通过@cached注解添加的缓存,syncLocal默认值为false吗,如果为false,怎么修改呢 找到了,2.7版本@Cached中新加了syncLocal字段

areyouok commented 11 months ago

指定broadcastChannel后,在相应的Cache那里,比如Cached注解那里指定个属性syncLocal = true就行了。

默认值是多少你可以看下代码。如果是windows,在编辑器里面把光标放到Cached上面,在Intellji IDEA里面按Ctrl+B,如果是Eclipse按F3,可以查看代码。

zhaojinhua123 commented 11 months ago

测试ok了,感谢

JecketLiao commented 1 month ago

测试ok了,感谢

你使用的是哪个版本?我这边使用了最新版本不行哦,其他节点不会失效。