Shift Redis键

shstlldc  于 2023-10-15  发布在  Redis
关注(0)|答案(1)|浏览(134)

在我的Redis数据库中,我有一个以prefix:<index>保存的键列表,所以示例数据库看起来像这样:

prefix:0 = "lorem"
prefix:1 = "ipsum"
prefix:2 = "dolor"
prefix:3 = "sit"

问题是,当我试图删除prefix:1时,因为无论出于何种原因,我需要删除ipsum,我在索引之间留下了一个间隙-DB是这样的:

prefix:0 = "lorem"
prefix:2 = "dolor"
prefix:3 = "sit"

我需要DB像这样:

prefix:0 = "lorem"
prefix:1 = "dolor"
prefix:2 = "sit"

如何在Python中使用redis-py库移动键的索引以填补差距(将prefix:2移动到prefix:1,将prefix:3移动到prefix:2)?我所能想到的是循环遍历所有索引大于删除索引的键,并重命名它们,但我更喜欢批量解决方案,如果有的话。

bvjxkvbb

bvjxkvbb1#

我不完全确定你在这里试图通过使用redis和在其中移动密钥来解决什么问题。你可以只删除prefix:3,而不是删除prefix:1,然后移动剩下的键。我不知道我错过了什么,请在你的问题上增加更多的清晰度。

Operation :  DELETE `prefix:1` and SHIFT <=> DELETE `prefix:3`
Input     : `prefix:0` `prefix:1` `prefix:2` `prefix:3`
Output    : `prefix:0` `prefix:1` `prefix:2`

相关问题