我有一些价值复制列表值到另一个列表
LRANGE LIST 0 -1
> 1
> 2
> 3
一个Redis的列表,我想RPUSH
这些值到另一个列表。如何才能做到这一点?我试图用MULTI
和EXEC
来做,但没有结果。
我有一些价值复制列表值到另一个列表
LRANGE LIST 0 -1
> 1
> 2
> 3
一个Redis的列表,我想RPUSH
这些值到另一个列表。如何才能做到这一点?我试图用MULTI
和EXEC
来做,但没有结果。
如果要移动的关键是一个新的密钥,您可以用重命名命令,唯一会改变的键名RENAME COMMAND
服务器端Lua脚本更方便WATCH/MULTI/EXEC块来实现这种操作。
下面是一个以两个列表(源和目标)为参数的脚本示例,以及在源列表中定义一个范围的两个整数。然后它将相应的项目推送到目的地列表。
> rpush foo 1 2 3 4
(integer) 4
> rpush bar x
(integer) 1
> eval "local res = redis.call('lrange', KEYS[1], ARGV[1], ARGV[2]); return redis.call('rpush', KEYS[2], unpack(res)); " 2 foo bar 0 -1
(integer) 5
> lrange bar 0 -1
1) "x"
2) "1"
3) "2"
4) "3"
5) "4"
谢谢。在这种情况下重命名对我来说已经足够了。 – amb 2013-02-21 09:54:56