最近访客
暂无访客
暂无访客

Redis二进制部署集群教程

一、集群前置说明

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

注意事项

  1. 生产环境建议每个节点部署在不同服务器(避免单点故障);
  2. 防火墙需放行所有节点端口(7001-7006);
  3. 集群模式下无需设置requirepass(或统一设置,所有节点密码必须相同);
  4. 若要开启密码,需在所有节点配置requirepassmasterauth(主从同步密码)。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容