Redis 部署手册(主从复制 & Cluster 集群)

AI摘要
这是一份关于Redis 6.x版本部署的技术指南,属于知识分享。文档详细说明了在Linux系统上部署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 / slave

  • connected_slaves

  • master_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: ok

  • All 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 mode

  • NOAUTH Authentication required

6.2 密码修改顺序

  1. 所有节点配置 requirepass

  2. 所有节点配置 masterauth

  3. 重启全部实例

  4. 再创建集群


七、建议的生产实践

  • 单机多实例:仅限测试/开发

  • 生产环境:主从或 Cluster 分布在不同物理机

  • 必须开启 AOF

  • 必须设置密码


本文档可作为:

  • 运维部署手册
  • 项目交付文档
  • 内部技术规范
本作品采用《CC 协议》,转载必须注明作者和本文链接
每天一点小知识,到那都是大佬,哈哈
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!