Redis队列和阻塞队列,哪个更适合处理长尾词查询?
- 内容介绍
- 文章标签
- 相关推荐
本文共计549个文字,预计阅读时间需要3分钟。
Redis 队列优点是轻量级,业务足够简单时无需使用RabbitMQ等专业消息中间件;缺点是弹出队列中的元素时,若消息处理失败也无法再次进行消费。简单示例如下:
redis 队列的优点是轻量级,业务足够简单时不需要使用rabbitMq这样专业的消息中间件;缺点是弹出队列中的元素时,即使该消息处理失败也无法再次进行消费
Redis队列 List
简单演示如下
普通的redis队列,为了实现业务,通常会使用while进行循环,这样的话没有消息时依旧会频繁的执行循环,造成cpu的空转,所以一般会在代码中增加sleep来解决该问题,但因此又会造成消息延迟问题。
阻塞队列可以很好的解决这些问题。
Redis阻塞队列
redis队列提供了 “阻塞式” 拉取消息的命令:BRPOP / BLPOP,这里的 B 指的是阻塞(Block)。如果队列为空,消费者在拉取消息时就「阻塞等待」,一旦有新消息过来,就通知消费者立即处理新消息。
本文共计549个文字,预计阅读时间需要3分钟。
Redis 队列优点是轻量级,业务足够简单时无需使用RabbitMQ等专业消息中间件;缺点是弹出队列中的元素时,若消息处理失败也无法再次进行消费。简单示例如下:
redis 队列的优点是轻量级,业务足够简单时不需要使用rabbitMq这样专业的消息中间件;缺点是弹出队列中的元素时,即使该消息处理失败也无法再次进行消费
Redis队列 List
简单演示如下
普通的redis队列,为了实现业务,通常会使用while进行循环,这样的话没有消息时依旧会频繁的执行循环,造成cpu的空转,所以一般会在代码中增加sleep来解决该问题,但因此又会造成消息延迟问题。
阻塞队列可以很好的解决这些问题。
Redis阻塞队列
redis队列提供了 “阻塞式” 拉取消息的命令:BRPOP / BLPOP,这里的 B 指的是阻塞(Block)。如果队列为空,消费者在拉取消息时就「阻塞等待」,一旦有新消息过来,就通知消费者立即处理新消息。

