- 首页 >
- 问答 >
-
云计算 >
- Ubuntu Redis配置集群如何操作
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)已放行。