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

我有一个应用程序,它在调用lpop. 使用该top命令,我可以看到 redis 使用了 64% 的 CPU,而我的应用程序使用了 101%。

我正在使用 redis 创建一个队列和工作人员。我的工人处于无限循环中,打电话lpop并等待下一份工作的到来。

为此,我使用了机械包。没有针对此问题在这里,哪里出了问题,据说是从lpop。但是,由于评论令人困惑,除了一个不会阻止而另一个会阻止这一事实之外,我对LPOP和之间的区别BLPOP一无所知。


蛊毒传说
浏览 182回答 1
1回答

白衣非少年

使用定时 BLPOP 而不是 LPOP 来避免大量 CPU 使用7 天前提交提交 54315dd9fe56a13b8aba2d2a8868fc48dfbb5795machinery/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。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go