我再次觉得在简单消息应用的场景使用redis实在很方便,不仅可以使用smove或RPOPLPUSH等命令实现消息不丢失(ack模式),也可以直接使用pop和push来消费和发布消息,更可以使用PUBLISH/SUBSCRIBE发布订阅的模式。
1.Redis发布订阅架构
Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。
发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息。Redis的这种发布订阅机制与基于主题的发布订阅类似,Channel相当于主题。
2.Redis发布订阅功能
(1)发送消息
Redis采用PUBLISH命令发送消息,其返回值为接收到该消息的订阅者的数量。
这里写图片描述
(2)订阅某个频道
Redis采用SUBSCRIBE命令订阅某个频道,其返回值包括客户端订阅的频道,目前已订阅的频道数量,以及接收到的消息,其中subscribe表示已经成功订阅了某个频道。
3.代码案例:
3.1首先引入相关依赖
redis.clients
jedis
2.9.0
3.2定义消息发布者类-Publisher
package com.cicc.config.management.subsciber;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import java