有没有很好的方法来支持Redis Sorted Set中的pop成员?

是否有很好的方法来支持Redis Sorted Set中的pop成员,就像List的api LPOP一样?

我从Redis Sorted Set弹出消息中发现的是使用ZRANGE +

ZREM,但是它不是线程安全性,并且当多线程同时从不同主机访问它们时需要分布式锁。

请提出建议,是否有更好的方法可以从排序集中弹出成员?

回答:

您可以编写一个Lua脚本来完成这项工作:将这两个命令包装在一个Lua脚本中。Redis确保Lua脚本以原子方式运行。

local key = KEYS[1]

local result = redis.call('ZRANGE', key, 0, 0)

local member = result[1]

if member then

redis.call('ZREM', key, member)

return member

else

return nil

end

以上是 有没有很好的方法来支持Redis Sorted Set中的pop成员? 的全部内容, 来源链接: utcz.com/qa/419191.html

回到顶部