CentOS Redis 发布订阅配置完全指南 (2026)

>CentOS Redis 发布订阅配置完全指南

Redis 的发布订阅(Pub/Sub)模式是一种轻量级的消息通信机制,允许多个客户端之间实时传递消息。本文将详细介绍在 CentOS 系统上如何安装、配置和使用 Redis 的发布订阅功能。

>一、Redis 发布订阅模式简介

发布订阅模式包含三个核心角色:

    >

  • 发布者(Publisher):向指定频道发送消息
  • 订阅者(Subscriber):监听并接收频道中的消息
  • 频道(Channel):消息传递的通道
  • 与消息队列不同,Pub/Sub 是”即发即忘”模式——只有在订阅者在线时,消息才会被接收,离线期间的消息不会被保留。

    >二、CentOS 安装 Redis

    >2.1 使用 YUM 安装

    >sudo yum install epel-release -y
    sudo yum install redis -y

    2.2 从源码编译安装(推荐)

    >sudo yum install gcc make -y
    wget https://download.redis.io/redis-stable.tar.gz
    tar xzf redis-stable.tar.gz
    cd redis-stable
    make
    sudo make install

    三、Redis 发布订阅核心配置

    >3.1 修改配置文件

    打开 Redis 配置文件进行必要调整:

    >sudo vi /etc/redis/redis.conf


    关键配置项:

    | 配置项 | 推荐值 | 说明 |
    |--------|--------|------|
    | bind | 0.0.0.0 或指定 IP | 允许远程连接 |
    | protected-mode | yes | 生产环境必须开启 |
    | requirepass | 设置强密码 | 防止未授权访问 |
    | timeout | 300 | 空闲连接超时(秒) |
    | maxclients | 10000 | 最大客户端连接数 |

    >3.2 启动 Redis 服务

    >sudo systemctl start redis
    sudo systemctl enable redis


    验证服务状态:

    >redis-cli ping

    返回 PONG 表示正常

    四、发布订阅基本操作

    >4.1 订阅频道

    在终端中启动一个订阅者:

    >redis-cli
    SUBSCRIBE news_channel


    订阅后,该客户端会进入监听状态,等待接收消息。

    >4.2 按模式订阅

    使用 PSUBSCRIBE 可以订阅匹配模式的频道:

    >PSUBSCRIBE news_*


    这样 news_sportsnews_tech 等频道的消息都会被接收。

    >4.3 发布消息

    在另一个终端中发布消息:

    >redis-cli
    PUBLISH news_channel "Hello, this is a test message"


    返回值为接收到该消息的订阅者数量。

    >4.4 取消订阅

    >UNSUBSCRIBE news_channel        # 取消订阅指定频道
    PUNSUBSCRIBE news_* # 取消模式订阅

    五、实际应用示例:实时通知系统

    以下是一个典型的实时通知系统配置流程:

    >5.1 配置发布者(通知发送端)

    >

    发送系统告警

    PUBLISH alerts:cpu "CPU usage exceeded 90% on server-01"

    >发送用户通知

    PUBLISH notify:user:1001 "您有一条新消息"

    5.2 配置订阅者(通知接收端)

    >

    监控系统订阅所有告警

    SUBSCRIBE alerts:cpu alerts:memory alerts:disk

    >用户订阅个人通知

    SUBSCRIBE notify:user:1001

    六、生产环境注意事项

  • 消息不持久化:订阅者离线时消息会丢失,如需持久化请使用 Redis Stream
  • 连接数控制:每个订阅者占用一个连接,注意 maxclients 配置
  • 网络带宽:高频消息发布时需关注网络带宽消耗
  • 安全性:生产环境务必设置 requirepass,并通过防火墙限制访问 IP
  • 监控:使用 PUBSUB CHANNELSPUBSUB NUMSUB 等命令监控频道状态
  • >七、常见问题排查

    >连接被拒绝

    检查 bind 配置和防火墙规则:

    >sudo firewall-cmd --add-port=6379/tcp --permanent
    sudo firewall-cmd --reload

    订阅者收不到消息

  • 确认订阅者和发布者连接的是同一个 Redis 实例
  • 检查频道名称是否一致(区分大小写)
  • 确认订阅者没有因网络中断而断开

>内存占用过高

如果频道积压大量消息或连接数过多,可通过 CLIENT LIST 查看连接状态,及时清理空闲连接。

---

通过以上配置,你可以在 CentOS 上快速搭建基于 Redis Pub/Sub 的实时消息系统。对于需要消息持久化的场景,建议考虑 Redis Stream 或专业消息队列。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注