2016-11-11 53 views
1

鉴于我有一个存储在关键字“A”中的列表,我如何在不同的关键字“B”中复制该列表?重复的redis列表

我知道,对于非列表值,我可以“获得”,然后“设置”。但是对于列表,当我尝试获取它时,我看到WRONGTYPE操作错误。

回答

1

您应该使用LRANGE来获取第一个列表的所有元素,然后使用LPUSHRPUSH将这些元素放到第二个列表中。

3

Redis的使5层不同的数据结构,如:

  • 键值
  • 字符串
  • Hashs
  • 解释

每个数据结构的有它自己的命令。

为了获得当前列表,您应该使用LRANGE命令。

前缀L参照List数据结构。

(Redis的集数据结构有一个相关的命令范围内使用SETRANGE

如果你读了Redis LRANGE documentation你就会明白如何使用它。

这里是简短的代码,你可以使用:

LRANGE mylist 0 -1 

凡MYLIST的列表,你从得到的值。

偏移量的开始和停止是从零开始的索引,0是该列表的第一 元素(列表头),1为下一个 元件等。

-1用于描述列表中的最后一个元素。

现在您应该使用LPUSHRPUSH取决于您希望将旧元素插入新列表的列表端。

1

无论数据结构如何,复制密钥值的另一种方法是将它复制到DUMP然后RESTORE将它复制到新密钥中。在大多数情况下,这种方法也是最快的。