我应该使用BLPOP,还是基于收益的忙碌等待数百个Redis密钥?

8ftvxx2r  于 2022-09-21  发布在  Redis
关注(0)|答案(1)|浏览(172)

前者听起来不错,但我有以下担忧:

  • 阻止数百个连接可能是浪费的,例如使用io多路复用策略,以及
  • Redis服务器应该处理更多的并发连接,因为每个连接都是长时间运行的。

另一种方法可能是后者:

  • 与其忙于无限期地等待,不如在每次N迭代时放弃线程。

请注意,连接数量将随着示例数量的增加而成比例增加。在两者之外,可以引入固定的BLPOP执行器池,但如果一些redis列表空闲,这很容易成为瓶颈。

gopyfrb3

gopyfrb31#

I/O多路传输并不忙于等待

BLPOP命令是发送到Redis服务器的实际命令,它涉及I/O多路传输,并且不忙于在客户机代码中等待

我看不出忙着等待有或没有线程屈服有什么意义

作为替代,我建议使用Redis支持的发布/订阅功能,以防您需要等待List为空之外的其他一些事件

相关问题