我正在寻找一种有效的方法将一个redis密钥(类型zrange)的内容复制到另一个redis密钥(为了备份以前的分数);
例如,密钥my_score:
`
' a':100,
' b':200,
' c':300
我正在寻找的操作类型与此类似
prev_score = my_score
在redis数据之上的某个时间间隔之后,将经历一些更改(通过其他一些代码)并需要重新评估更改。这次新值将是
'a': 150,
'b': 250,
'c': 300
现在我需要比较自上次检查以来的更改,以便我可以比较每个索引中的更改类型。
请不要流动:
zadd
来实现此目的,但我正在寻找一个redis命令或更有效的命令。答案 0 :(得分:2)
简短回答 - ZUNIONSTORE prev_score 1 my_score
。
详情请见here
答案 1 :(得分:1)
您可以使用DUMP
和RESTORE
。
str = DUMP myscore
RESTORE another_key 0 str
如果您的密钥有过期时间,您可以先使用PTTL key
获取以ms为单位的过期时间,然后RESTORE another_key expire_time str
。