有没有办法立即从redis列表中弹出所有列表项?

时间:2015-12-28 12:40:56

标签: python-2.7 redis

我想立刻从redis列表中弹出所有列表项。

我不想在列表为空时调用lpoprpop方法,因为将请求多次发送到redis-server似乎效率低下。

我也知道我可以使用lrange方法获取所有列表,但不能弹出项目。

你能建议我吗?

我只想通过一个pop的请求将getredis-server个项目放在列表中。

2 个答案:

答案 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