2017-03-29 2 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

사용 루아의 unpack - 즉 : 그러나

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

, 대량 범위에 따라 소트 세트에서 삭제하려면이 단순히 ZREMRANGEBYRANK을 사용하여 수행 할 수 :

ZREMRANGEBYRANK test 0 -50 
+0

감사를 모두 제안. – Shital

관련 문제