代码拉取完成,页面将自动刷新
1、当ehcache为空,redis非空时,getKeys 返回空
2、当ehcache非空,redis非空时,getKeys 返回ehcache.getkeys结果
查看源码:
switch (message.getAction()) {
case JbootEhredisMessage.ACTION_PUT:
ehcache.remove(message.getCacheName(), message.getKey());
break;
case JbootEhredisMessage.ACTION_REMOVE:
ehcache.remove(message.getCacheName(), message.getKey());
break;
case JbootEhredisMessage.ACTION_REMOVE_ALL:
ehcache.removeAll(message.getCacheName());
break;
}
每次cache.put的时候,都会remove其他集群cache,而每次cache.get的时候都没有写入到ehcache,导致虽然使用的是二级缓存,但在集群环境下因为只有cache.put的实例在get时会查询ehcache,其他示例都是直接查询的redis,二级缓存与直接用redis并无太大区别。
所以建议:
1、cache.getKeys 直接返回 redis 结果
2、cache put 的时候同步 去 put 集群其他实例 ehcache 或 cache.get 的时候 put ehcache。
看来只支持单节点,多节点之间本地缓存不会同步的是么?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
@宝鸡三六九网络科技有限公司 必须同步
已经按建议修改,多谢。
登录 后才可以发表评论