【问题标题】:Redis array sync issues (lpop, rpush)Redis 数组同步问题(lpop、rpush)
【发布时间】:2021-09-14 05:16:02
【问题描述】:

我目前正在使用 Redis 作为我的整个微服务的分布式队列(不是发布/订阅队列,只是一个普通数组)。

但由于我的许多服务同时多次访问队列,因此有时会出现一些问题。

首先,我使用 rpush 命令将一个元素推送到队列中。然后,当进程处理队列的第一个元素(索引 == 0)时,我使用 blpop 命令弹出该元素。

现在问题来了。在弹出元素的那一刻,如果其他微服务请求更改队列状态的命令,它要么不弹出值,要么将值推送到队列中。

所以我想知道是否有一些有用的命令,或者保证命令不会相互冲突的技术。

【问题讨论】:

    标签: redis queue


    【解决方案1】:

    在弹出元素的那一刻,如果其他微服务请求更改队列状态的命令,它要么不弹出值,要么将值推送到队列中。

    这不应该发生。如果它真的发生了,那么你已经成功地生成了一个错误。在这种情况下,请通过在 GitHub Redis Issues 中创建一个新问题来提交错误报告,其中可能包含生成错误的最小代码段。

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 2012-08-21
      • 1970-01-01
      • 2017-01-12
      • 2016-11-12
      相关资源
      最近更新 更多