美文网首页
Redis运用--消息队列

Redis运用--消息队列

作者: 爱上西瓜霜 | 来源:发表于2020-07-08 17:28 被阅读0次

    我们使用redis的list作为消息队列。

    lpush,rpop。左进右出。

    当队列空了怎么办?客户端是通过队列的 pop 操作来获取消息,然后进行处理。处理完了再接着获取消息,再进行处理。可是如果队列空了,客户端就会陷入 pop 的死循环,不停地 pop,没有数据,接着再 pop,又没有数据。这就是浪费生命的空轮询。

    我们可以在程序中sleep一下,每pop一下都sleep(1)一下。

    但是当push的速度很快,那处理速度就变得太慢了,sleep(0.1)?和没解决有啥不同?

    使用 brpop,阻塞读,当没有数据,直接休眠。但是休眠时间太长,redis会直接断开连接。所以要做好异常处理。

    ------看书笔记,过些时候回头看,自己给自己找茬。

相关文章

网友评论

      本文标题:Redis运用--消息队列

      本文链接:https://www.haomeiwen.com/subject/sanccktx.html