我想立刻从redis列表中弹出所有列表项。
我不想在列表为空时调用lpop
或rpop
方法,因为将请求多次发送到redis-server
似乎效率低下。
我也知道我可以使用lrange
方法获取所有列表,但不能弹出项目。
我只想通过一个pop
的请求将get
和redis-server
个项目放在列表中。
答案 0 :(得分:3)
Redis没有POPALL
命令,但是使用嵌入式Lua脚本,您可以轻松地执行此操作,例如:
local reply = redis.call('LRANGE', KEYS[1], 0, -1)
redis.call('DEL', KEYS[1])
return reply
答案 1 :(得分:3)
正如Itamar Haber所说,使用lrange和del。在管道模式下,它将作为单个命令完成。
LRANGE key 0 -1
DEL key