我有一个带有一些值的Redis列表
LRANGE LIST 0 -1
> 1
> 2
> 3
Run Code Online (Sandbox Code Playgroud)
我想把RPUSH这些值放到另一个列表中.如何才能做到这一点?我试图做到这一点的MULTI和EXEC,但没有结果.
服务器端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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2538 次 |
| 最近记录: |