gpt4 book ai didi

redis - Redis LPOP/RPOP 操作是原子的吗?

转载 作者:IT王子 更新时间:2023-10-29 05:59:35 26 4
gpt4 key购买 nike

我正在尝试在 Redis 中构建 FIFO 队列,但我只是担心并发性。如果 2 个客户端尝试同时进行 RPOP 操作怎么办?

如果 RPOP/LPOP 不是原子的,那么如何使用 MULTI/EXEC 实现原子性?

最佳答案

Is Redis LPOP / RPOP operation atomic?

是的,LPOPRPOP 都是原子的。

What if 2 clients try to do RPOP operation simultaneously?

如果 LIST 的大小等于或大于 2,则两个客户端都会得到不同的项目。如果 LIST 只有一个项目,则只有一个客户端获取该项目,而另一个客户端得到空回复。如果 LIST 为空,则两个客户端都得到空回复。

另一种解决方案

您还可以使用BLPOPBRPOP 来实现FIFO。这两个命令也是原子的,将阻塞空 LIST。有关详细信息,请参阅文档。

关于redis - Redis LPOP/RPOP 操作是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49849067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com