广告
返回顶部
首页 > 资讯 > 数据库 >redis的发布订阅功能是什么
  • 518
分享到

redis的发布订阅功能是什么

2024-04-02 19:04:59 518人浏览 独家记忆
摘要

Redis的发布订阅功能是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。        &nb

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: default
2016-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 hierarchy
2016-02-16 00:14:09.756  INFO 1481 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : ReGIStering beans for JMX exposure on startup
2016-02-16 00:14:09.763  INFO 1481 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 0
2016-02-16 00:14:09.807  INFO 1481 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 2147483647
2016-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的发布订阅功能是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: redis的发布订阅功能是什么

本文链接: https://www.lsjlt.com/news/41685.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • redis的发布订阅功能是什么
    redis的发布订阅功能是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。        &nb...
    99+
    2022-10-18
  • redis发布订阅功能怎么实现
    redis发布订阅功能怎么实现?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Redis 发布订阅(pub/sub)是一种消息通信模式:发送...
    99+
    2022-10-18
  • Python操作redis的订阅发布功能
    安装redis-serveryum -y install gcc gcc-c++    #安装编译工具cd /optwget -c http://download.redis.io/releases/redis-3.0.5.tar.gz  ...
    99+
    2023-01-31
    操作 功能 Python
  • redis的发布订阅
    简介 进程间的消息通信模式: 发送者(pub)发送消息,订阅者(sub)接收消息 示例,订阅多个 127.0.0.1:8686[1]> SUBSCRIBE c1 c2 c3 Reading messages... (press C...
    99+
    2020-06-08
    redis的发布订阅
  • redis的订阅功能有什么用
    redis订阅功能可以用于消息的传输,是一种消息通信模式,Redis客户端可以订阅任意数量的频道,具体实现代码:package com.hcmony.sword.redis;import org.apache.commo...
    99+
    2022-10-25
  • 如何利用Redis和C++开发发布-订阅功能
    如何利用Redis和C++开发发布-订阅功能在开发大规模实时系统时,发布-订阅模式被广泛应用于消息传递和事件驱动机制中。Redis是一个高性能的键值存储系统,通过其提供的发布-订阅功能,可以方便地实现实时通信和数据传递。本文将介绍如何利用R...
    99+
    2023-10-22
    C++ redis 发布订阅
  • SpringBoot Redis发布订阅模式的方法是什么
    本篇内容主要讲解“SpringBoot Redis发布订阅模式的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot Redis发布订阅模式的方法是什...
    99+
    2023-06-22
  • redis怎么进行发布订阅
    redis进行发布订阅的方法:代码:public void publish(String topic ,String messge){Jedis jedis = null;if (StringUtils.isBlank(topic)){to...
    99+
    2022-10-25
  • 如何利用Redis和C++实现发布-订阅功能
    如何利用Redis和C++实现发布-订阅功能,需要具体代码示例引言:Redis是一种开源的高性能键值存储系统,它支持多种数据结构,并提供了一系列的客户端库,适用于各种编程语言。Redis的发布-订阅功能是其最常用的功能之一,可以实现消息的发...
    99+
    2023-10-22
    C++ redis 发布订阅
  • Springboot整合redis实现发布订阅功能介绍步骤
    目录一、redis发布订阅简介二、几个核心概念解释三、适用场景四、与springboot的整合1、导入基础依赖2、配置文件3、自定义RedisSubConfig4、自定义消息监听器5...
    99+
    2022-11-13
  • Redis中的发布订阅和事务怎么使用
    本篇内容主要讲解“Redis中的发布订阅和事务怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis中的发布订阅和事务怎么使用”吧!发布订阅redis的发布订阅系统有点类似于我们生活中...
    99+
    2023-06-19
  • 怎么利用Jedis实现Redis的订阅与发布
    怎么利用Jedis实现Redis的订阅与发布?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是Redis发布订阅Redis发布订阅是一种消息通信模式,发送者通...
    99+
    2023-05-31
    redis jedis
  • 【赵强老师】Redis的消息发布与订阅
    Redis 作为一个publish/subscribe server,起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向Redis server订阅自己感兴趣的消息类型,当发布者通过publish...
    99+
    2021-07-29
    【赵强老师】Redis的消息发布与订阅
  • redis能支持的订阅是多少
    redis能支持的订阅是多少?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Redis是一个开源的内存数据库,它以键值对的形式存...
    99+
    2022-10-18
  • Redis实现消息的发布订阅原理分析
    目录一、什么是发布和订阅二、Redis的发布和订阅三、redis 发布订阅常用命令四、命令实战1、基本使用2、订阅符合要求的频道3、查看活跃频道五、发布订阅原理1、订阅频道原理2、发布信息原理3、退订信息原理一、什么是发...
    99+
    2022-07-25
    Redis消息发布 Redis消息订阅
  • 参考EventEmitter实现完整订阅发布功能函数
    目录引言实现总结引言 前一篇文章 《实现一个简单的订阅发布功能函数|参考 EventEmitter》 实现了简单版本的,本篇文章用 JS 完整实现 Node.js 中的 Event...
    99+
    2023-02-12
    EventEmitter订阅发布功能函数 EventEmitter 订阅发布
  • mitt tiny-emitter发布订阅应用场景是什么
    这篇文章主要讲解了“mitt tiny-emitter发布订阅应用场景是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mitt tiny-emitter发布订阅应用场...
    99+
    2023-07-04
  • Redis中怎么实现实时订阅推送功能
    本篇文章为大家展示了Redis中怎么实现实时订阅推送功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。方案1:MQ的延迟投递。MQ虽然支持消息的延迟投递但尺度太大1...
    99+
    2022-10-18
  • Redis中发布订阅及事务的知识点整理
    这篇文章主要讲解了“Redis中发布订阅及事务的知识点整理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis中发布订阅及事务的知识点整理”吧!一、Re...
    99+
    2022-10-18
  • redis实现队列的阻塞、延时、发布和订阅
    目录普通队列阻塞队列发布订阅模式延时队列和优先级队列应用场景Redis不仅可作为缓存服务器,还可以用作消息队列。它的列表类型天生支持用作消息队列。如下图所示: 由于Redis的列表...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作