zoukankan      html  css  js  c++  java
  • 使用过Redis做异步队列么,你是怎么用的?

    一般使用list结构作为队列,rpush生产消息,lpop消费消息。当lpop没有消息的时候,要适当sleep一会再重试。
    如果对方追问可不可以不用sleep呢?
    list还有个指令叫blpop,在没有消息的时候,它会阻塞住直到消息到来。如果对方追问能不能生产一次消费多次呢?使用pub/sub主题订阅者模式,可以实现1:N的消息队列。
    如果对方追问pub/sub有什么缺点?
    在消费者下线的情况下,生产的消息会丢失,得使用专业的消息队列如RabbitMQ等。
    如果对方追问redis如何实现延时队列?
    使用sortedset,拿时间戳作为score,消息内容作为key调用zadd来生产消息,消费者用zrangebyscore指令获取N秒之前的数据轮询进行处理。

  • 相关阅读:
    linux 常用函数
    现在什么都不是浮云
    laosao
    2012年
    工作任务
    代码整理
    如何做一个男人
    很重要的2点
    录像预录的设计及实现
    弄了一个小网站
  • 原文地址:https://www.cnblogs.com/n-swdysa/p/14432227.html
Copyright © 2011-2022 走看看