405 Star 3.7K Fork 1.2K

GVP京东零售 / hotkey

 / 详情

请问下,当Redis中某个热key被更新了(例如使用redis set命令),本地缓存中该热key会被剔除么?

待办的
任务
创建于  
2023-11-14 21:16
暂无描述。

评论 (10)

wp973 创建了任务

与redis没半毛钱的关系,都不与redis通信

假设我们本地缓存中的热key是从 Redis 中取的,当这个key被更新了,本地缓存中的value就成了老数据 ,这时候不应该从本地缓存中剔除这个key么?

假设我们本地缓存中的热key是从 Redis 中取的,当这个key被更新了,本地缓存中的value就成了老数据 ,这时候不应该从本地缓存中剔除这个key么?

@wp973 当key被变了后,可以调用api方法 remove(key)方法,可以删除整个集群已经缓存的该key,避免值不一致

嗯嗯,我可以这样理解么:

当key变了后,用户只能手动调用 remove(key)方法,去删除掉本地缓存中的key

@tianyaleixiaowu

另外想问下,如何感知到DB(Redis或其他)中的key被更新了呢

嗯嗯,我可以这样理解么:

当key变了后,用户只能手动调用 remove(key)方法,去删除掉本地缓存中的key

@tianyaleixiaowu

@wp973 remove方法会删除自己以及整个client集群所有的该key

另外想问下,如何感知到DB(Redis或其他)中的key被更新了呢

@wp973 框架与redis无任何关系,也不与redis通信,感知不了

有一个想法,这个项目和J2Cache 相结合,取长补短 :smile:

我就是刚读完项目简介,并没有看源码,是这个意思吗??
public void setAndUpdate(String key, String value) {
     //有可能本次set 的数据是新的数据,这代表redis更新值了,本地的hotkey也要替换
           redisTemplate.opsForValue().set(key, value);
          //如果不是热key本地是不是没必要存储呢??? 
          //JdHotKeyStore.remove(key);
          //判断是否是热key 如果是更新到本地的hotkey内存当中 并且通知到其他JVM服务
           JdHotKeyStore.smartSet(key, value);

}

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
9169557 love tina 1700469945 303698 tianyalei 1578919857 8453612 lang junnan admin 1642756220
Java
1
https://gitee.com/jd-platform-opensource/hotkey.git
git@gitee.com:jd-platform-opensource/hotkey.git
jd-platform-opensource
hotkey
hotkey

搜索帮助