Redis 部署手册(主从复制 & Cluster 集群)
Redis 部署手册(主从复制 & Cluster 集群)
适用 Redis 6.x(以 6.2.x 为例)
一、部署前准备
1.1 服务器与环境要求
Linux(CentOS / Rocky / Ubuntu 均可)
内核参数建议:
vm.overcommit_memory = 1
net.core.somaxconn = 1024
sysctl -p
1.2 关闭透明大页(THP)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
1.3 目录规划(示例)
/opt/redis/
├── redis-server
├── redis-cli
├── 6001/
│ ├── redis.conf
│ ├── data/
│ └── logs/
├── 6002/
├── 6003/
├── 6004/
├── 6005/
└── 6006/
二、基础 Redis 实例部署
2.1 redis.conf 核心配置(示例)
port 6001
bind 0.0.0.0
protected-mode no
# daemonize
daemonize yes
pidfile /opt/redis/6001/redis.pid
# 数据
appendonly yes
dir /opt/redis/6001/data
# 日志
logfile /opt/redis/6001/logs/redis.log
# 认证
requirepass ysyhl9d
masterauth ysyhl9d
2.2 启动实例
./redis-server /opt/redis/6001/redis.conf
2.3 验证
./redis-cli -p 6001 -a ysyhl9d ping
# PONG
三、主从复制部署(Replication)
3.1 架构示例
Master: 6001
Slave : 6002, 6003
3.2 Slave 配置
replicaof 127.0.0.1 6001
masterauth ysyhl9d
⚠️ 注意:replicaof 仅适用于非 cluster 模式
3.3 查看主从状态
redis-cli -p 6001 -a ysyhl9d INFO replication
redis-cli -p 6002 -a ysyhl9d INFO replication
关键字段:
role: master / slaveconnected_slavesmaster_link_status: up
四、Redis Cluster 集群部署
4.1 Cluster 模式配置
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
requirepass ysyhl9d
masterauth ysyhl9d
❗ Cluster 模式 禁止使用
replicaof
4.2 启动 6 个实例
for p in 6001 6002 6003 6004 6005 6006; do
./redis-server /opt/redis/$p/redis.conf
done
4.3 创建集群(3 Master + 3 Slave)
redis-cli -a ysyhl9d --cluster create
127.0.0.1:6001
127.0.0.1:6002
127.0.0.1:6003
127.0.0.1:6004
127.0.0.1:6005
127.0.0.1:6006
--cluster-replicas 1
4.4 验证集群状态
redis-cli -p 6001 -a ysyhl9d cluster info
redis-cli -p 6001 -a ysyhl9d cluster nodes
必须满足:
cluster_state: okAll 16384 slots covered
五、常用运维命令速查
5.1 查看主从关系
redis-cli -p 6001 -a ysyhl9d INFO replication
5.2 查看集群拓扑
redis-cli -p 6001 -a ysyhl9d cluster nodes
5.3 客户端写入报错处理
READONLY You can't write against a read only replica原因:连接到了 Slave
解决:使用集群客户端或直连 Master
No connections left in the pool for CLUSTER SLOTS- 原因:客户端未正确初始化集群
六、常见问题与注意事项
6.1 Cluster 模式常见错误
replicaof directive not allowed in cluster modeNOAUTH Authentication required
6.2 密码修改顺序
所有节点配置
requirepass所有节点配置
masterauth重启全部实例
再创建集群
七、建议的生产实践
单机多实例:仅限测试/开发
生产环境:主从或 Cluster 分布在不同物理机
必须开启 AOF
必须设置密码
本文档可作为:
- 运维部署手册
- 项目交付文档
- 内部技术规范
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu