我使用Redis排序集作为队列来维护用户列表,我需要弹出列表中的第一项并使用它,但我遇到了问题。这是我的尝试......
keys = []
$redis.multi do
# Get the item at the top of the sorted set
keys = $redis.zrange("users:waiting", 0, 0)
# Remove it from the set
$redis.zrem("users:waiting", keys[0])
end
# Get the item from the range
@user_id = keys[0]
...但是这段代码不起作用。救命!提前感谢您的智慧!
答案 0 :(得分:1)
它不起作用的原因是因为MULTI。
键未分配。最后发生的对EXEC的调用是返回这些结果的时候
请参阅https://github.com/redis/redis-rb#executing-commands-atomically
就在https://github.com/redis/redis-rb#futures
之下应该显示差异:)道歉,如果这不完全正确,因为我不使用Ruby。