Redis集群配置有哪些关键步骤
导读:Redis集群配置关键步骤 1. 环境准备 节点规划:Redis官方建议最小集群配置为3个主节点+3个从节点(共6个节点),主从节点需分布在不同物理机器或可用区,避免单点硬件故障影响多个节点。 网络要求:所有节点间必须网络互通(开放客户端...
Redis集群配置关键步骤
1. 环境准备
- 节点规划:Redis官方建议最小集群配置为3个主节点+3个从节点(共6个节点),主从节点需分布在不同物理机器或可用区,避免单点硬件故障影响多个节点。
- 网络要求:所有节点间必须网络互通(开放客户端端口如6379和集群总线端口如16379),客户端需能访问所有节点,建议使用低延迟、高带宽网络。
- Redis安装:在所有节点安装相同版本的Redis(建议5.0及以上),可通过包管理器(如
apt
、yum
)或源码编译安装。
2. 修改节点配置文件(redis.conf)
每台节点的redis.conf
需调整以下关键参数:
- 启用集群模式:
cluster-enabled yes
(必须设置为yes
,否则节点以单机模式运行)。 - 集群配置文件:
cluster-config-file nodes-< port> .conf
(如nodes-7000.conf
),节点会自动维护该文件记录集群状态(无需人工修改)。 - 节点超时时间:
cluster-node-timeout 15000
(单位:毫秒),用于判定节点失联(如超过该时间无法连接大部分主节点,节点将停止接收请求)。 - 持久化配置:
appendonly yes
(开启AOF持久化),appendfsync everysec
(折衷性能与数据安全,每秒同步一次),避免数据丢失。 - 网络配置:
bind 0.0.0.0
(允许所有IP访问,若需限制可指定具体IP)、protected-mode no
(关闭保护模式,需配合集群密码)、requirepass yourpassword
(集群密码,所有节点需一致)、masterauth yourpassword
(从节点连接主节点的认证密码)。 - 集群总线端口:
cluster-port < Redis端口+10000>
(如7000端口的集群总线端口为17000),用于节点间通信(Gossip协议交换信息)。
3. 启动所有Redis节点
在每个节点上执行以下命令启动Redis实例(需指定对应的配置文件路径):
redis-server /path/to/redis-<
port>
.conf
示例(6个节点):
redis-server /etc/redis/redis-7000.conf
redis-server /etc/redis/redis-7001.conf
# ... 其他节点
启动后,可通过redis-cli -p <
port>
ping
验证节点是否正常运行(返回PONG
表示成功)。
4. 创建Redis集群
使用redis-cli
工具初始化集群(推荐方式),任选一台节点执行:
redis-cli --cluster create \
<
node1-ip>
:<
port>
<
node2-ip>
:<
port>
<
node3-ip>
:<
port>
\ # 3个主节点
<
node4-ip>
:<
port>
<
node5-ip>
:<
port>
<
node6-ip>
:<
port>
\ # 3个从节点
--cluster-replicas 1 # 每个主节点配1个从节点
示例(6个节点IP为192.168.1.1-6,端口7000-7005):
redis-cli --cluster create \
192.168.1.1:7000 192.168.1.2:7000 192.168.1.3:7000 \
192.168.1.4:7000 192.168.1.5:7000 192.168.1.6:7000 \
--cluster-replicas 1
执行后会提示确认节点分配,输入yes
即可完成集群创建。
5. 验证集群状态
- 查看集群信息:连接任意节点,执行以下命令:
关键指标:redis-cli -h < node-ip> -p < port> cluster info
cluster_state:ok
(集群正常)、slots_assigned:16384
(所有槽已分配)、cluster_size:3
(3个主节点)。 - 查看节点列表:执行以下命令:
输出应显示6个节点,包含主从角色(redis-cli -h < node-ip> -p < port> cluster nodes
master
/slave
)、槽位范围(如0-5460
)及节点ID。 - 测试数据分片:连接任意节点写入数据,观察自动重定向(MOVED指令):
若槽位不属于当前节点,会返回redis-cli -h 192.168.1.1 -p 7000 set foo bar
MOVED 3999 192.168.1.2:7000
,客户端需重定向到目标节点。
6. 集群维护关键操作
- 添加节点:启动新节点后,将其加入集群并分配槽:
# 添加节点到集群 redis-cli --cluster add-node new_node_ip:new_port existing_node_ip:existing_port # 重新分片(将300个槽从现有节点迁移到新节点) redis-cli --cluster reshard existing_node_ip:existing_port # 输入要移动的槽数、目标节点ID(新节点ID)、源节点ID(all表示从所有主节点平均分配)
- 删除节点:需先迁移该节点的所有槽到其他节点,再执行移除:
# 迁移槽(将节点7005的槽迁移到节点7000) redis-cli --cluster reshard 7000 # 输入要移动的槽数(节点7005的槽数)、目标节点ID(7000的ID)、源节点ID(7005的ID) # 移除节点 redis-cli --cluster del-node new_node_ip:new_port node_id
- 故障转移:若主节点故障,从节点会自动触发故障转移(需满足
cluster-node-timeout
超时),也可手动触发:
手动故障转移需输入redis-cli -h < slave-ip> -p < slave-port> cluster failover
yes
确认。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Redis集群配置有哪些关键步骤
本文地址: https://pptw.com/jishu/715660.html