Redis-04消息队列

@toc:

  • Redis方案实现延时队列有哪些?
  • 优缺点比较?
  • 使用 lpush/rpop 或者 rpush/lpop // 缺点: 循环pop会导致增加无用的qps
  • 客户端 使用 blpop 或者 brpop // 缺点: 没有消息时超时后断开(超过客户端的soTimeout), 需要保证重连
  • zadd k time field , time是消息要被处理的时间, 先 get k判断时间, 然后 zrem 掉这个key, 每个争抢的客户端通过 zrem返回值确认自己是否抢到
  • 使用zadd 作为消息队列仍然有问题: 多个客户端争用一个消息, 没有消息的确认模式(ack)

@ref: