Redis 的发布订阅如何实现?

Redis的发布订阅(Publish/Subscribe)是通过频道(channels)来完成的。
主要包括以下步骤:

  1. 订阅者订阅一个或者多个频道。
SUBSCRIBE channel1 channel2  # 订阅频道
  1. 生产者向某个频道发布消息。
PUBLISH channel1 "hello"  # 发布消息 
  1. 订阅这个频道的所有订阅者都会收到这个消息。
  2. 订阅者可以处理这个消息并发回确认信息。
*subscribe channel1 channel2   # 订阅频道列表
*1    # 来自订阅者的 ID
$4
hello
# 收到的消息 
  1. 生产者可以不断向这个频道发布消息,所有订阅者都可以收到。
    关键点是:
  • 频道 act as a stream of messages
  • 订阅者通过订阅特定频道来确定要接收哪个 stream。
  • 生产者通过发布信息到指定频道来推送消息给订阅者。
  • 一个 subscriber 可以订阅一个或多个频道。

使用场景包括:

  • 实时消息推送
  • 实时数据更新
  • 通知系统
  • 实时聊天

在 Java 中可以使用 redis.clients.jedis.PubSub 类实现 Redis 的订阅者功能。