我有一些價值複製列表值到另一個列表
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