redis java 发布订阅_Redis中使用Java代码的方式实现发布订阅流程

本文详细介绍了如何在Java中利用Jedis库实现Redis的发布与订阅功能,包括创建`JedisSubscriber`类重写`onMessage`方法处理消息,并通过`Jedis`实例订阅频道。发布者和订阅者示例代码也一并展示,确保读者理解从概念到实践的过程。
摘要由CSDN通过智能技术生成

场景

Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例:

在上面了解了Redis的发布与订阅的概念以及使用命令行的方式实现简单的发布与订阅流程后,

在Java中怎样实现发布与订阅。

注:

实现

JedisPushSub类

Jedis中的JedisPubSub类是Jedis的一个抽象类,此类定义了public/subscribe的回调方法,通过继承JedisPubSub类

重写回调方法。实现java中Redis的发布订阅。当Redis发生发布或者订阅的相关事件时会调用这些回调方法,只在

回调方法中实现自己的业务逻辑。

onMessage():发布者发布消息时,会执行订阅者的回调方法onMessage()接收发布的消息,在此方法实现消息接收后进行

自定义的业务逻辑处理。

实现订阅者

打开IDEA新建Maven项目,然后添加jedis的依赖

redis.clients

jedis

3.0.1

然后在test新建包,包下新建Java类RedisSubscriber

然后使其继承JedisPubSub并重写onMessage方法

在回调方法onMessage中实现简单的输出接受的消息和时间。

@Overridepublic voidonMessage(String channel, String message) {

SimpleDateFormat df= new SimpleDateFormat("yyyy MM dd HH:mm:ss");

System.out.println("订阅者:订阅频道["+channel+"],收到消息["+message+"],时间:"+df.format(newDate()));

}

然后创建main方法,创建Jedis对象和订阅者并订阅频道。

public static voidmain(String[] args) {

System.out.println("启动订阅者");//创建Jedis

Jedis jedis = new Jedis("192.168.40.133", 6379);//创建订阅者

RedisSubscriber redisSubscriber = newRedisSubscriber();//订阅频道

jedis.subscribe(redisSubscriber,"badaodechengxvyuan");

}

完整示例代码

package com.badao.redis;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPubSub;

import java.text.SimpleDateFormat;

import java.util.Date;public classRedisSubscriber extends JedisPubSub {

@Overridepublic voidonMessage(String channel, String message) {

SimpleDateFormat df= new SimpleDateFormat("yyyy MM dd HH:mm:ss");

System.out.println("订阅者:订阅频道["+channel+"],收到消息["+message+"],时间:"+df.format(newDate()));

}public static voidmain(String[] args) {

System.out.println("启动订阅者");//创建Jedis

Jedis jedis = new Jedis("192.168.40.133", 6379);//创建订阅者

RedisSubscriber redisSubscriber = newRedisSubscriber();//订阅频道

jedis.subscribe(redisSubscriber,"badaodechengxvyuan");

}

}

然后运行main方法,启动该订阅者。

参照上面以命令行的方式实现发布和订阅的流程,在上面发布一个消息

我们就可以在此订阅者中接收到消息了。

a102c9b9aa76ffe81ba1f4ddc4f94243.png

12551685.html

实现发布者

再次新建一个Maven项目,然后引入jedis的依赖,同上新建包和类

在类中新建main方法,然后发布消息

package com.badao.redis;

import redis.clients.jedis.Jedis;public classPublisher {public static voidmain(String[] args) {

System.out.println("开始发布......");//创建Jedis

Jedis jedis = new Jedis("192.168.40.133", 6379);//发布消息

jedis.publish("badaodechengxvyuan", "紧急通知:...");

System.out.println("消息发送完毕......");

}

}

然后运行main方法,就可以在前面的订阅者的项目中收到消息了

6f62c10f4832216a4581b4664f6f106a.png

12551685.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值