在 Redis 中执行 Lua 脚本时在 Redis 中出错。我的困惑是如何使用 Redis 数组回复来制作第二个redis.call
. 我的用例是批量删除 Sorted Set 成员。
127.0.0.1:6380> eval "local list = redis.call('zrevrange','test', 50, -1) return redis.call('zrem', 'test', list)" 0
(error) ERR Error running script (call to f_aa5dddbbb039b576aba5f46a99a268339ca2e9d5): @user_script:1: @user_script: 1: Lua redis() command arguments must be strings or integers
如何做到这一点?
使用 Lua 的unpack
- 即:
local list = redis.call('zrevrange','test', 50, -1) return
redis.call('zrem', 'test', unpack(list))
但是,要根据范围从排序集中执行批量删除,只需使用ZREMRANGEBYRANK
:
ZREMRANGEBYRANK test 0 -50
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句