spring-boot-dependencies: 2.6.13jetcache-starter-redi: 2.7.4
jetcache.remote.default.type=redisjetcache.remote.default.broadcastChannel=projectA
broadcastChannel 不起作用 ,一个节点修改 local+remote 然后立刻获取 显示生效, 但一个节点 local 还是之前的数据
jk9hmnmh1#
那是个总开关,不能所有的缓存更新都广播。注解上还需要打开syncLocal,才会生效
dwbf0jvd2#
@cached(name = "user", key = "#username", expire = 3600, localExpire = 180, syncLocal = true, cacheType = CacheType.BOTH) 也是不起作用
lf5gs5x23#
同一个问题
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,此处不指定你注解中如何设置没用)。
4条答案
按热度按时间jk9hmnmh1#
那是个总开关,不能所有的缓存更新都广播。注解上还需要打开syncLocal,才会生效
dwbf0jvd2#
@cached(name = "user", key = "#username", expire = 3600, localExpire = 180, syncLocal = true, cacheType = CacheType.BOTH) 也是不起作用
lf5gs5x23#
同一个问题
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,此处不指定你注解中如何设置没用)。