redis的发布与订阅
与消息队列的差别
不做持久化
不是异步
不能保证可靠性
使用实例
发布者示例:连接到 Redis 服务器,使用 publish 方法发布消息到指定的频道。
订阅者示例:连接到 Redis 服务器,使用 subscribe 方法订阅指定的频道,并通过回调或循环处理接收到的消息。
使用lettuce的示例
发布者:
public class LettucePublisher {
public static void main(String[] args) {
// 连接到 Redis 服务器
RedisClient redisClient = RedisClient.create("redis://localhost:6379");
StatefulRedisConnection<String, String> connection = redisClient.connect();
RedisCommands<String, String> commands = connection.sync();
// 发布消息到频道
String channel = "my_channel";
String message = "Hello, Redis!";
commands.publish(channel, message);
System.out.println("Message '" + message + "' published to channel '" + channel + "'");
// 关闭连接
connection.close();
redisClient.shutdown();
}
}
订阅者:
public class LettuceSubscriber {
public static void main(String[] args) {
// 连接到 Redis 服务器
RedisClient redisClient = RedisClient.create("redis://localhost:6379");
StatefulRedisPubSubConnection<String, String> pubSubConnection = redisClient.connectPubSub();
RedisPubSubCommands<String, String> pubSubCommands = pubSubConnection.sync();
// 订阅频道
String channel = "my_channel";
pubSubCommands.subscribe(channel);
System.out.println("Subscribed to channel '" + channel + "'");
// 处理接收到的消息
while (true) {
String message = pubSubCommands.receive().getMessage();
System.out.println("Received message: " + message);
}
}
}
原文地址:https://blog.csdn.net/qq_35693377/article/details/140385387
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!