【问题标题】:Does using multi hurt redis reliable queue performance使用多伤害redis可靠的队列性能
【发布时间】:2015-10-25 06:17:29
【问题描述】:

我已经实现了类似于 redis 的可靠 que 模式的东西。你有两个列表。一个等待处理列表A,另一个列表当前处理的项目列表B。

我目前有 8 名工人,其模式如下。

  1. 80 rpoplpush listA listB in a multi.exec
  2. 处理80个项目
  3. 如果项目失败 lpush listA 项目
  4. 当每个项目完成时 lrem 1 项目
  5. 等待所有 80 项完成
  6. 重复

所以我的问题是,我是否无意中通过多次启动进程来阻止对这两个列表的访问?检查从 listA 中删除项目的速率,看起来 8 个工作人员的 80 个项目中只有一个被同时放入处理队列中。

为了提高性能,我是否应该将步骤 1 转换为一次只接受 1 项并完全删除步骤 5?当多个工作人员同时执行此操作时,这仍然被认为是安全的吗?

【问题讨论】:

    标签: redis message-queue


    【解决方案1】:

    仅当您发送命令并且正在处理整个命令时,Redis 才会被阻止。我会说你会产生一些小的干扰。

    这里最好的建议应该是在需要时尝试对 Redis 执行操作,如果您可以在应用程序层评估某些内容,请避免访问它

    我怀疑移动 80 件物品在这里应该是个问题......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-25
      • 2017-12-28
      • 2020-10-10
      • 2023-03-22
      • 2019-01-08
      • 1970-01-01
      • 2017-03-09
      • 2015-03-15
      相关资源
      最近更新 更多