一、集群前置说明
Redis 集群要求:
- 至少 3 个主节点(每个主节点可配从节点,建议 3 主 3 从);
- 每个节点需单独配置(端口、目录等不能重复);
二、步骤 1:准备集群节点(3 主 3 从,共 6 个节点)
1. 创建节点目录
每个节点对应独立目录(以端口区分,如 7001~7006):
# 创建集群根目录
mkdir -p /usr/local/redis-cluster
# 创建6个节点目录(7001-7006)
for port in {7001..7006}; do
mkdir -p /usr/local/redis-cluster/${port}/conf
mkdir -p /usr/local/redis-cluster/${port}/data
mkdir -p /usr/local/redis-cluster/${port}/logs
done
2. 编写集群节点配置文件
以7001 节点为例,创建配置文件/usr/local/redis-cluster/7001/conf/redis.conf,内容如下(其他节点仅需修改port和目录路径):
# ===================== 集群节点基础配置 =====================
# 端口(每个节点唯一,如7001/7002...)
port 7001
# 绑定IP(允许所有IP访问,生产替换为内网IP)
bind 0.0.0.0
# 关闭保护模式
protected-mode no
# 集群模式必须开启
cluster-enabled yes
# 集群配置文件(自动生成,无需手动修改)
cluster-config-file nodes-${port}.conf
# 集群节点超时时间(毫秒,超时则判定节点下线)
cluster-node-timeout 15000
# 数据存储目录(对应节点目录)
dir /usr/local/redis-cluster/7001/data
# 日志文件
logfile /usr/local/redis-cluster/7001/logs/redis.log
# 进程PID文件
pidfile /usr/local/redis-cluster/7001/redis.pid
# ===================== 持久化配置(同单机,可复用) =====================
save 900 1
save 300 10
save 60 10000
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# ===================== 内存配置(同单机) =====================
maxmemory 4gb
maxmemory-policy volatile-lru
# ===================== 连接配置(同单机) =====================
maxclients 10000
timeout 300
3. 批量生成其他节点配置
复制 7001 的配置到 7002~7006,替换端口和目录路径:
# 批量修改配置(以7002为例,其他节点同理)
sed 's/7001/7002/g' /usr/local/redis-cluster/7001/conf/redis.conf > /usr/local/redis-cluster/7002/conf/redis.conf
sed 's/7001/7003/g' /usr/local/redis-cluster/7001/conf/redis.conf > /usr/local/redis-cluster/7003/conf/redis.conf
sed 's/7001/7004/g' /usr/local/redis-cluster/7001/conf/redis.conf > /usr/local/redis-cluster/7004/conf/redis.conf
sed 's/7001/7005/g' /usr/local/redis-cluster/7001/conf/redis.conf > /usr/local/redis-cluster/7005/conf/redis.conf
sed 's/7001/7006/g' /usr/local/redis-cluster/7001/conf/redis.conf > /usr/local/redis-cluster/7006/conf/redis.conf
三、步骤 2:启动所有集群节点
# 启动7001-7006节点
for port in {7001..7006}; do
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/${port}/conf/redis.conf
done
# 验证节点是否启动(应显示6个redis进程)
ps -ef | grep redis-server | grep 700
五、步骤 3:创建 Redis 集群
1. 执行集群创建命令
通过redis-cli --cluster创建 3 主 3 从集群(替换为你的服务器 IP,如 192.168.1.100):
/usr/local/redis/bin/redis-cli --cluster create \
192.168.1.100:7001 192.168.1.100:7002 192.168.1.100:7003 \
192.168.1.100:7004 192.168.1.100:7005 192.168.1.100:7006 \
--cluster-replicas 1
--cluster-replicas 1:表示每个主节点对应 1 个从节点;- 执行后会提示 “是否接受默认的主从分配”,输入
yes确认。
2. 验证集群状态
# 连接集群(任意节点均可)
/usr/local/redis/bin/redis-cli -c -h 192.168.1.100 -p 7001
# 查看集群信息
192.168.1.100:7001> cluster info
# 查看节点状态(应显示3主3从,状态为online)
192.168.1.100:7001> cluster nodes
六、集群运维常用命令
# 查看集群健康状态
/usr/local/redis/bin/redis-cli --cluster check 192.168.1.100:7001
# 添加新节点(主/从)
/usr/local/redis/bin/redis-cli --cluster add-node 新节点IP:端口 现有集群节点IP:端口
# 故障转移(手动将从节点提升为主节点)
/usr/local/redis/bin/redis-cli -c -h 从节点IP -p 端口 cluster failover
注意事项
- 生产环境建议每个节点部署在不同服务器(避免单点故障);
- 防火墙需放行所有节点端口(7001-7006);
- 集群模式下无需设置
requirepass(或统一设置,所有节点密码必须相同); - 若要开启密码,需在所有节点配置
requirepass和masterauth(主从同步密码)。
本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
如果用于其他用途,请购买正版支持作者,谢谢!若您认为「RuYan」发布的内容若侵犯到您的权益,请联系站长邮箱: iosruyan@163.com 进行删除处理。
本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。












暂无评论内容