怎么在不同主机上搭建Redis集群,步骤和注意点分享
- 问答
- 2026-01-01 11:43:30
- 3
要搭建一个跨主机的Redis集群,我们指的是Redis官方提供的分布式解决方案——Redis Cluster,它允许数据自动在多个Redis节点间分片,并提供一定程度的故障转移能力,从而实现高可用,假设你有三台或以上的物理机或云服务器,每台服务器上计划运行至少一个Redis实例(为了高可用,通常每台服务器会运行两个实例,主从配对)。
第一步:环境准备与Redis安装
- 准备主机:确保你拥有至少三台独立的主机(例如IP地址为192.168.1.10, 192.168.1.11, 192.168.1.12),如果只有三台,你可以构建一个包含三个主节点和三个从节点的最小集群,六台主机(三主三从)是更理想的配置。
- 安装Redis:在每一台主机上,安装相同版本的Redis服务器软件,建议使用5.0或以上版本,因为早期版本的工具和稳定性可能有所不同,你可以通过操作系统的包管理器(如
apt-get install redis-serverfor Ubuntu或yum install redisfor CentOS)安装,或者从Redis.io官网下载源码编译安装。 - 防火墙配置:这是跨主机通信的关键,Redis集群节点之间需要两个端口才能正常工作:
- 服务端口:默认为6379,用于客户端连接和接收命令。
- 集群总线端口:在服务端口的基础上加10000,即16379,这个端口用于节点间的心跳检测、故障转移、配置更新等内部通信。
- 注意点:你必须在所有主机的防火墙(如iptables, firewalld)或云服务商的安全组规则中,同时开放这两个端口,允许其他集群节点的IP地址访问,只开放6379端口会导致集群无法建立。
第二步:配置每个Redis实例
在每台主机上,你都需要为计划启动的每个Redis实例创建一个配置文件,在第一台主机(192.168.1.10)上,你可以创建配置文件 /etc/redis/redis-cluster-6379.conf。
配置文件中最关键的几个参数如下(根据你的实际IP和路径修改):
# 绑定本机IP地址,0.0.0.0表示允许所有连接,但生产环境建议绑定内网IP bind 0.0.0.0 # 服务端口 port 6379 # 启用集群模式,这是核心 cluster-enabled yes # 集群配置文件的路径,Redis会自动生成和维护这个文件,你只需指定路径和文件名 cluster-config-file nodes-6379.conf # 节点超时时间(毫秒),超过此时长认为节点故障 cluster-node-timeout 15000 # 开启AOF持久化,建议开启以提高数据安全性 appendonly yes # 如果设置了密码,所有节点的密码必须一致,且需要以下两行 # requirepass your_secure_password # masterauth your_secure_password # 守护进程方式运行 daemonize yes # 日志文件路径 logfile /var/log/redis/redis-server-6379.log
重要注意点:
cluster-config-file这个文件不要手动编辑,Redis会自己管理。- 如果设置了密码(
requirepass),那么masterauth也必须设置成相同的密码,这样从节点才能正确验证并连接到主节点进行复制。
第三步:启动所有Redis实例
在所有主机上,使用各自的配置文件启动Redis服务。
redis-server /etc/redis/redis-cluster-6379.conf
检查日志文件,确认没有错误,并且看到类似“Ready to accept connections”和“Cluster state changed: ok”相关的信息。
第四步:创建集群
现在所有节点都运行起来了,但它们还是相互独立的,你需要使用Redis自带的命令行工具 redis-cli 将它们组装成一个集群。
选择其中一台主机执行以下命令,假设我们使用三台主机,每台一个实例,构建三主三从的集群需要六台主机,但最小化测试可以用三主节点(无副本)。
-
如果无密码,创建三主节点集群的命令如下(根据Redis.io文档中的方法):
redis-cli --cluster create 192.168.1.10:6379 192.168.1.11:6379 192.168.1.12:6379 --cluster-replicas 0
这里的
--cluster-replicas 0表示每个主节点不配置从节点,如果要配置一主一从,你有6个节点,则参数应为--cluster-replicas 1,工具会自动分配主从关系。 -
如果有密码,需要加上
-a参数:redis-cli -a your_secure_password --cluster create 192.168.1.10:6379 192.168.1.11:6379 192.168.1.12:6379 --cluster-replicas 0
执行命令后,工具会给出一个它规划好的主从分配方案,你输入yes确认,集群创建过程就会开始,工具会自动进行数据分片(分配哈希槽)和主从同步。
第五步:验证集群状态
集群创建完成后,连接到任意一个节点进行验证。
# 连接至某个节点 redis-cli -c -h 192.168.1.10 -p 6379 # 如果有密码,需要认证 # auth your_secure_password # 查看集群信息 cluster info # 查看集群节点列表和关系 cluster nodes
在cluster info的输出中,检查cluster_state:ok,在cluster nodes的输出中,你会看到所有节点的列表,每个节点前面有一个唯一的ID,以及它们扮演的角色(master或slave)和持有的哈希槽范围。
核心注意点总结
- 网络互通是前提:务必确保所有节点的服务端口和集群总线端口能相互通信。
- 版本一致性:所有节点应使用相同的主要Redis版本。
- 配置准确性:每个实例的配置文件中的集群相关参数要正确,特别是绑定地址和端口。
- 密码一致性:如果启用认证,所有节点的
requirepass和masterauth必须完全相同。 - 节点数量:至少需要三个主节点才能形成集群(因为需要大多数投票来选举),为了高可用,每个主节点至少配一个从节点,因此建议至少6个节点。
- 客户端支持:你的应用程序需要使用支持Redis Cluster的客户端库,客户端库能够识别重定向命令(
-MOVED和-ASK)并自动路由到正确的节点。 - 数据备份与监控:集群不等于备份,你仍然需要制定定期备份数据的策略,搭建监控系统来关注集群的状态、内存使用率和节点健康状况。
通过以上步骤,你应该能够成功在不同主机上搭建起一个可用的Redis集群,实际操作中,请根据你的网络环境和具体需求调整IP地址、端口和配置参数。

本文由颜泰平于2026-01-01发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/72431.html
