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 秒之前的数据轮询进行处理。到这里,面试官暗地里已经对你竖起了大拇

    指。但是他不知道的是此刻你却竖起了中指,在椅子背后。

    Java Program!
  • 相关阅读:
    运算符重载
    LPCRITICAL_SECTION 函数
    让你弄明白高斯核是怎样进行滤波工作的
    sln文件
    内联函数
    C++对文本的操作
    数组形参
    内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理]
    怎样对付win7黑屏
    C++ 模板
  • 原文地址:https://www.cnblogs.com/programb/p/13020784.html
Copyright © 2011-2022 走看看