Redis Cluster安全的替换原有数据

xiaoxiao2021-02-28  122

1.使用背景

redis集群,每个key带有一个副本,经常在更新数据时,程序出现卡顿。

2.原因分析

1.单机Redis:所有的数据都保存在一个机器上,使用rename覆盖原有值时不会影响。 2.集群Redis:所有的数据分布在多台机器上(设置了副本),使用rename覆盖原有值时,当原有值和新值不在一个机器上,涉及到不同服务器之间数据的拷贝,此时访问数据可能会卡住。

3.解决办法

原先处理: 如上图所示,处理流程为新建一个key2,数据为value2,我们删除key1和value1,然后重命名key2为key1,数据为value2。

现在处理: 思路:我们通过一个中间key2来实现原有数据的更新。 更新数据:我们新建一个key2,新数据为value2,我们把key1的value值设为key2,value1设置一个过期时间。 查询数据:我们通过key1得到值key2,通过key2获取真实的数据value2。

大家可以关注我的公众号:不知风在何处,相互沟通,共同进步。

转载请注明原文地址: https://www.6miu.com/read-24515.html

最新回复(0)