# 一、异步消息队列 list 可以作为异步队列使用,用rpush和lpop(右进左出)或lpush和rpop(左进右出) ![[Snipaste_2023-02-23_10-00-41 20.png]] 当队列为空时,如果一直pop会陷入pop死循环,可以采用与Future.get原理相同的阻塞读方法 **blpop/brpop** 其中b代表blocking # 二、优先级队列 使用zset实现优先级队列,score作为优先级分数 # 三、延时队列 使用zset实现延迟队列,将消息序列化成一个字符串作为zset的value,消息的时间作为到期时间score,然后用多个线程轮询zset获取到期的任务进行处理。