我想一次从 redis 列表中弹出所有列表项。
我不想在列表为空时调用lpop
或rpop
方法,因为多次发送请求到redis-server
.
我还知道我可以使用lrange
方法获取所有列表,但不能弹出项目。
你能建议我吗?
我只想通过一个请求来将列表中的项目pop
添加到。get
redis-server
Redis 没有POPALL
命令,但是通过嵌入的 Lua 脚本,您可以轻松地执行此操作,例如:
local reply = redis.call('LRANGE', KEYS[1], 0, -1)
redis.call('DEL', KEYS[1])
return reply
Run Code Online (Sandbox Code Playgroud)
正如 Itamar Haber 所说,使用 lrange 和 del。在管道模式下,它将作为单个命令完成。
LRANGE key 0 -1
DEL key
Run Code Online (Sandbox Code Playgroud)