jetcache.remote.${area}.broadcastChannel 配置不生效

368yc8dk  于 3个月前  发布在  其他
关注(0)|答案(4)|浏览(45)

spring-boot-dependencies: 2.6.13
jetcache-starter-redi: 2.7.4

jetcache.remote.default.type=redis
jetcache.remote.default.broadcastChannel=projectA

broadcastChannel 不起作用 ,一个节点修改 local+remote 然后立刻获取 显示生效, 但一个节点 local 还是之前的数据

jk9hmnmh

jk9hmnmh1#

那是个总开关,不能所有的缓存更新都广播。注解上还需要打开syncLocal,才会生效

dwbf0jvd

dwbf0jvd2#

@cached(name = "user", key = "#username", expire = 3600, localExpire = 180, syncLocal = true, cacheType = CacheType.BOTH) 也是不起作用

pxy2qtax

pxy2qtax4#

@cached(name = "user", key = "#username", expire = 3600, localExpire = 180, syncLocal = true, cacheType = CacheType.BOTH) 也是不起作用
我刚开始也是不生效,找了还就才发现我是自己写了个Configuration(Spring Boot)显式的初始化全局一次性初始化cache的导致未初始化时的syncLocal没有指定导致的。
推荐检查思路:
1、首先检查redis是否开启的事件通知,配置文件(通常是redis.conf)中notify-keyspace-events我设置值是Egx

2、检查你的代码中@cached中是否开启syncLocal = true(我看你已经开启了)
3、如果你是显式的初始化cache,查看你的代码中是否使用QuickConfig同CacheManager的getOrCreateCache(QuickConfig config)来初始化cache,初始化时的QuickConfig.builder中有个参数是syncLocal需要显示指定为true(默认未指定就是false,此处不指定你注解中如何设置没用)。

相关问题