redis的发布订阅功能是什么
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,redis的发布订阅功能是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。序redis提供了简单的发布订阅功能,对于一些合适的场景
千家信息网最后更新 2025年01月31日redis的发布订阅功能是什么
redis的发布订阅功能是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
序
redis提供了简单的发布订阅功能,对于一些合适的场景(比如不要求消费者不在线时也能收到离线消息),比起专业的MQ来说,用起来更简单些。本文主要是记录下怎么在SpringBoot里头使用redis的发布订阅功能。
定义生产者
配置
@Bean MyPublisher redisPublisher(RedisConnectionFactory factory) { return new MyPublisher( redisTemplate(factory), topic() ); } @Bean ChannelTopic topic() { return new ChannelTopic( "pubsub:queue" ); }
生产者实例
public class MyPublisher { private final RedisTemplate< String, Object > template; private final ChannelTopic topic; private final AtomicLong counter = new AtomicLong( 0 ); public MyPublisher( final RedisTemplate< String, Object > template, final ChannelTopic topic ) { this.template = template; this.topic = topic; } @Scheduled( fixedDelay = 100 ) public void publish() { template.convertAndSend( topic.getTopic(), "Message " + counter.incrementAndGet() + ", " + Thread.currentThread().getName() ); }}
定义消费者
配置
//subscribe @Bean MessageListenerAdapter messageListener() { return new MessageListenerAdapter( new MyMessageListener() ); } @Bean RedisMessageListenerContainer redisContainer(RedisConnectionFactory factory) { final RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(factory); container.addMessageListener(messageListener(), topic()); return container; }
消费者实例
public class MyMessageListener implements MessageListener { @Override public void onMessage( final Message message, final byte[] pattern ) { System.out.println( "Message received: " + message.toString() ); }}
运行
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.3.2.RELEASE)2016-02-16 00:14:08.190 INFO 1481 --- [ main] com.codecraft.RedisdemoApplication : Starting RedisdemoApplication on Jupiter.local with PID 1481 (/Users/codecraft/workspace/redisdemo/target/classes started by codecraft in /Users/codecraft/workspace/redisdemo)2016-02-16 00:14:08.193 INFO 1481 --- [ main] com.codecraft.RedisdemoApplication : No active profile set, falling back to default profiles: default2016-02-16 00:14:08.242 INFO 1481 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@140e5a13: startup date [Tue Feb 16 00:14:08 CST 2016]; root of context hierarchy2016-02-16 00:14:09.756 INFO 1481 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup2016-02-16 00:14:09.763 INFO 1481 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 02016-02-16 00:14:09.807 INFO 1481 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 21474836472016-02-16 00:14:09.897 INFO 1481 --- [ main] com.codecraft.RedisdemoApplication : Started RedisdemoApplication in 2.215 seconds (JVM running for 2.589)Message received: "Message 1, pool-1-thread-1"Message received: "Message 2, pool-1-thread-1"Message received: "Message 3, pool-1-thread-1"Message received: "Message 4, pool-1-thread-1"Message received: "Message 5, pool-1-thread-1"Message received: "Message 6, pool-1-thread-1"Message received: "Message 7, pool-1-thread-1"Message received: "Message 8, pool-1-thread-1"Message received: "Message 9, pool-1-thread-1"Message received: "Message 10, pool-1-thread-1"
关于redis的发布订阅功能是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
功能
订阅
消费者
问题
消费
实例
更多
生产者
帮助
生产
解答
配置
合适
易行
简单易行
专业
内容
场景
小伙
小伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
使用索引会影响数据库性能
软件测试和网络安全挂钩吗
网络安全周第一批整改名单
河口镇网络安全与管理
强化网络安全确保网站
来宾市网络安全
绿锦服务器
旅游安全应急 大数据库
我的世界服务器宣传
服务器端口映射到本地
sql数据库的框架是什么
服务器并发多大速率
好软件开发培训班
六维空间数据库维护
计算网络技术基础段标第四章
dns服务器还原
网络安全赛四川
固碳数据库
x79双路怎么做服务器
大安市网络安全
pkpm软件开发面试
服务器管理器配置ftp
rust服务器玩家列表
linux命令服务器连接数据库
mysql还原数据库步骤
ulam软件开发合同 违法
谷歌开源软件开发
教育局网络安全宣传版面
盐城智能软件开发特点
源远网络技术有限公司