温馨提示×

Ubuntu Redis配置集群如何操作

小樊
41
2025-12-10 19:50:09
栏目: 云计算

Ubuntu 上配置 Redis 集群实操指南

一 环境准备与安装

  • 更新系统并安装 Redis:
    • sudo apt update && sudo apt install -y redis-server
  • 建议准备至少 6 个实例(3 主 3 从),可使用单机多端口或多台机器部署。以下以单机 7000–7005 端口为例。

二 创建节点目录与配置文件

  • 创建目录结构:
    • mkdir -p /opt/redis-cluster/{7000,7001,7002,7003,7004,7005}
  • 每个端口目录新建 redis.conf,关键配置示例(以 7000 为例,其他端口仅修改端口号):
    • port 7000
    • bind 0.0.0.0(生产环境请限制为内网网段)
    • cluster-enabled yes
    • cluster-config-file nodes-7000.conf
    • cluster-node-timeout 5000
    • appendonly yes
    • daemonize yes
    • dir /opt/redis-cluster/7000
    • logfile /opt/redis-cluster/7000/run.log
  • 如启用密码认证,添加:
    • requirepass YourStrongPass
    • masterauth YourStrongPass
    • replica-announce-ip 你的公网或内网IP(云服务器常见需求,便于从节点通告正确地址)

三 启动所有节点

  • 方式 A(前台/调试):在每个目录启动
    • redis-server /opt/redis-cluster/7000/redis.conf
    • redis-server /opt/redis-cluster/7001/redis.conf
    • …(直至 7005)
  • 方式 B(生产/后台):使用 systemd 管理(建议)
    • 为 7000 创建单元文件 /etc/systemd/system/redis-cluster@.service,内容示例:
      • [Unit]
        • Description=Redis Cluster Node %i
        • After=network.target
      • [Service]
        • Type=notify
        • ExecStart=/usr/bin/redis-server /opt/redis-cluster/%i/redis.conf
        • ExecStop=/usr/bin/redis-cli -p %i shutdown
        • Restart=always
        • User=redis
        • RuntimeDirectory=redis
      • [Install]
        • WantedBy=multi-user.target
    • 启用并启动:
      • sudo systemctl daemon-reload
      • sudo systemctl enable --now redis-cluster@{7000,7001,7002,7003,7004,7005}
  • 验证进程与端口:
    • ps -ef | grep redis
    • ss -lntp | grep :700[0-5]

四 创建集群

  • 无密码创建(单机示例):
    • redis-cli --cluster create \
      • 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 \
      • 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \
      • –cluster-replicas 1
  • 有密码创建(在命令末尾追加 -a 密码):
    • redis-cli --cluster create 127.0.0.1:7000 … --cluster-replicas 1 -a YourStrongPass
  • 创建过程中会展示主从分配与槽位划分,输入 yes 确认。

五 验证与常用运维

  • 集群状态与节点信息:
    • redis-cli -c -p 7000 cluster info
    • redis-cli -c -p 7000 cluster nodes
    • redis-cli --cluster check 127.0.0.1:7000
  • 客户端连接测试(带 -c 启用集群模式,带 -a 使用密码):
    • redis-cli -c -p 7000 -a YourStrongPass
    • 在客户端内执行:set foo bar;get foo(会自动重定向到对应主节点)
  • 防火墙放行(UFW 示例):
    • sudo ufw allow 7000:7005/tcp
  • 重启与关闭(使用 systemd 时):
    • 重启全部:sudo systemctl restart redis-cluster@{7000…7005}
    • 关闭全部:sudo systemctl stop redis-cluster@{7000…7005}
  • 常见问题与提示:
    • 云服务器需设置 replica-announce-ip 为实例的公网/内网 IP,避免从节点通告内网地址导致访问异常。
    • 集群创建或重启时,务必保留各节点的 nodes-*.conf 与数据目录,避免误删导致集群元数据丢失。
    • 如需跨机器部署,将 127.0.0.1 替换为各节点的 实际 IP,并确保节点间 互通端口(如 7000–7005) 与集群总线端口(默认 +10000,即 17000–17005)已放行。

0