gpt4 book ai didi

transactions - Redis 中的 RPUSH 和 LPUSH 可以赛跑吗?

转载 作者:可可西里 更新时间:2023-11-01 11:12:00 25 4
gpt4 key购买 nike

redis.io 上关于 RPUSHLPUSH 的文档不清楚这些操作在推送多个项目时是否仍然是 O(1) 和事务性的。例如,如果两个客户端对具有多个项目的同一个列表执行 RPUSH,他们的项目是否会散布并因此乱序?

tadman 对他的回答的评论最适合我:Can RPUSH and LPUSH in Redis race?

最佳答案

由于 Redis 是单线程的,因此它们不会“同时”发生,一个总是先于另一个到达,尽管时间通常是您无法控制的。

现在,如果您有两个流程可以以某种方式协调,您可以让一个流程延迟到另一个流程,直到该操作完成。如果您担心这一点,您可以创建某种悲观锁,尽管这只是这里的一种解决方案。

所以简短的回答是,是的,它们将以随机顺序到达。

这就是 Redis 实现 MULTI 的原因命令在事务中批处理事物。这些事务将自动应用。

关于transactions - Redis 中的 RPUSH 和 LPUSH 可以赛跑吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30792455/

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