阅读量:2
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-(如.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(如7000端口的集群总线端口为17000),用于节点间通信(Gossip协议交换信息)。
3. 启动所有Redis节点
在每个节点上执行以下命令启动Redis实例(需指定对应的配置文件路径):
redis-server /path/to/redis-.conf
示例(6个节点):
redis-server /etc/redis/redis-7000.conf
redis-server /etc/redis/redis-7001.conf
# ... 其他节点
启动后,可通过redis-cli -p 验证节点是否正常运行(返回PONG表示成功)。
4. 创建Redis集群
使用redis-cli工具初始化集群(推荐方式),任选一台节点执行:
redis-cli --cluster create \
: : : \ # 3个主节点
: : : \ # 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-p cluster info cluster_state:ok(集群正常)、slots_assigned:16384(所有槽已分配)、cluster_size:3(3个主节点)。 - 查看节点列表:执行以下命令:
输出应显示6个节点,包含主从角色(redis-cli -h-p cluster nodes master/slave)、槽位范围(如0-5460)及节点ID。 - 测试数据分片:连接任意节点写入数据,观察自动重定向(MOVED指令):
若槽位不属于当前节点,会返回redis-cli -h 192.168.1.1 -p 7000 set foo barMOVED 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-p cluster failover yes确认。
以上就是关于“Redis集群配置有哪些关键步骤”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm