为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 lpop 会增加 Redis CPU 使用率?

为什么 lpop 会增加 Redis CPU 使用率?

Go
蛊毒传说 2021-12-07 17:02:28
我有一个应用程序,它在调用lpop. 使用该top命令,我可以看到 redis 使用了 64% 的 CPU,而我的应用程序使用了 101%。我正在使用 redis 创建一个队列和工作人员。我的工人处于无限循环中,打电话lpop并等待下一份工作的到来。为此,我使用了机械包。没有针对此问题在这里,哪里出了问题,据说是从lpop。但是,由于评论令人困惑,除了一个不会阻止而另一个会阻止这一事实之外,我对LPOP和之间的区别BLPOP一无所知。
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

使用定时 BLPOP 而不是 LPOP 来避免大量 CPU 使用


7 天前提交


提交 54315dd9fe56a13b8aba2d2a8868fc48dfbb5795


machinery/v1/brokers/redis.go


- itemBytes, err := conn.Do("LPOP", redisBroker.config.DefaultQueue)

+ itemBytes, err := conn.Do("BLPOP", redisBroker.config.DefaultQueue, "1")

使用machinery/v1/brokers/redis.go 更改LPOP为的最新版本BLPOP。



查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信