Redis发布订阅模式

1、创建发送者

TEST_CHANNEL 为自定义通道,发送者将消息发送到通道中,接受者订阅了这个通道就可以获取到信息

typescript 复制代码
@Component
public class RedisSender {
	public static final String TEST_CHANNEL = "test_channel";

	@Autowired
	private RedisTemplate redisTemplate;

	public void send(String channel, String message) {
		redisTemplate.convertAndSend(channel, message);
	}
}

2、创建订阅者

现在接受到了消息只是简单的打印了出来

java 复制代码
@Component
public class RedisRecipient implements MessageListener {
	public static final String TEST_CHANNEL = "test_channel";

	@Override
	public void onMessage(Message message, byte[] pattern) {
		System.out.println("接受到的信息为:" + message.toString());
	}
}

3、配置消息监听

java 复制代码
@Configuration
public class RedisConfig {

	/**
	 * 配置消息监听
	 */
	@Bean
	public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, RedisRecipient redisRecipient) {
		RedisMessageListenerContainer container = new RedisMessageListenerContainer();
		container.setConnectionFactory(connectionFactory);

		// 订阅频道
		Topic topic = new PatternTopic(RedisRecipient.TEST_CHANNEL);

		// 使用监听器监听Redis的消息
		container.addMessageListener(redisRecipient, topic);
		return container;
	}
}

4、测试

kotlin 复制代码
@SpringBootTest
public class RedisTest {
	@Resource
	private RedisSender redisSender;

	@Test
	public void test02() {
		redisTemplate.opsForValue().set("cKey", "11");
		Object cKey = redisTemplate.opsForValue().get("cKey");
		System.out.println(cKey);

		redisSender.send(RedisSender.TEST_CHANNEL, "你好");
	}

}
相关推荐
葫芦和十三3 小时前
图解 MongoDB 09|explain 再读:从 queryPlanner 到 executionStats
后端·mongodb·agent
葫芦和十三3 小时前
图解 MongoDB 10|覆盖查询:让索引把活干完,根本不用回表
后端·mongodb·agent
大鸡腿同学5 小时前
从 CoT 思维链到 ReAct:智能 Agent 到底是怎么 “思考” 的?
后端
IT_陈寒6 小时前
Vite的静态资源打包让我熬夜到三点,这坑千万别跳
前端·人工智能·后端
SamDeepThinking7 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
Asize8 小时前
多模态生图:从 Vite 工程化到前端调用 Qwen Image
javascript·人工智能·后端
java小白小8 小时前
SpringBoot(09):缓存实战——穿透、雪崩、击穿的解决方案
后端
java小白小8 小时前
SpringBoot(08):Redis 集成——5 分钟给你的项目加上缓存
后端
LiuMingXin8 小时前
意图与代码之间:AI编程范式全景解读
前端·后端·面试
用户34232323763179 小时前
边缘计算与云边协同——当采集不再只是“上传“
后端