美文网首页
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