我已经在Redis中使用RPUSH/LPUSH和RPOP/LPOP为列表设置了一个先进先出(FIFO)队列,我如何从队列中同时自动弹出多个项目?如果LIST和上面提到的命令不支持它,我应该使用什么?
vshtjzan1#
没有执行多个pop的命令,但是您可以将这些命令 Package 在transaction中或Lua script中。
qhhrdooz2#
Redis transactions保证是原子的,因此可以首先使用LRANGE获取项目,然后使用LTRIM删除它们:
LRANGE
LTRIM
> RPUSH l 1 2 3 4 5 LRANGE mylist 0 -1 > MULTI OK > LRANGE l 0 1 QUEUED > LTRIM l 2 -1 QUEUED > EXEC 1) 1) "1" 2) "2" 2) OK > LRANGE l 0 -1 1) "3" 2) "4" 3) "5"
8fsztsew3#
从6.2.0开始,LPOP和RPOP现在支持count参数。
count
3条答案
按热度按时间vshtjzan1#
没有执行多个pop的命令,但是您可以将这些命令 Package 在transaction中或Lua script中。
qhhrdooz2#
Redis transactions保证是原子的,因此可以首先使用
LRANGE
获取项目,然后使用LTRIM
删除它们:8fsztsew3#
从6.2.0开始,LPOP和RPOP现在支持
count
参数。