Redis消息队列&发布订阅模式使用

Redis实现消息队列原理

     Redis的列表是使用双向链表实现的,保存了头尾节点,在列表头尾两边插取元素是非常快的。可以直接使用Redis的List实现消息队列,通过指令lpush和rpop或者rpush和lpop实现消息生产和消费。

    Redis对list的操作命令中。L表示从左边(头部)开始插与弹出,R表示从右边(尾部)开始插与弹出。


左侧插入,右侧消费


右侧插入,左侧消费

Redis消息发布与订阅

打开Redis发布客户端,发布 publish channel “test1”


发布消息

这样消息就发出去了。返回值表示接收这条消息的订阅者数量。发出去的消息不会被持久化,也就是有客户端订阅channel后只能接收到后续发布到该频道的消息,之前的就接收不到了。

打开Redis订阅客户端,订阅 subscribe channel


订阅消息

    执行上面命令客户端会进入订阅状态,处于此状态下客户端不能使用除subscribe、unsubscribe、psubscribe和punsubscribe这四个属于"发布/订阅"之外的命令,否则会报错。

    进入订阅状态后客户端可能收到3种类型的回复。每种类型的回复都包含3个值,第一个值是消息的类型,根据消类型的不同,第二个和第三个参数的含义可能不同。

发布客户端再次发布消息,订阅客户端可接收到发布得消息


消息发布订阅


你可能感兴趣的:(Redis消息队列&发布订阅模式使用)