2017-03-29 9 views
0

RedisでLuaスクリプトを実行しているときにRedisでエラーが発生しました。私の混乱は、二番目の作成にRedisアレイ応答を使用する方法ですredis.call。私の使用例は、ソートセットメンバーの一括削除です。redis.callの内部でLuaテーブルを使用するには?

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 

これを行う方法は?

答えて

1

利用のLuaのunpack - すなわち:

local list = redis.call('zrevrange','test', 50, -1) return 
redis.call('zrem', 'test', unpack(list)) 

しかし、単にZREMRANGEBYRANKを使用し、範囲に基づいてソートセットから削除バルクを実行するには:両方の提案のための

ZREMRANGEBYRANK test 0 -50 
+0

感謝を。 – Shital

関連する問題