Redis集群主机怎么快速搭建,配置步骤和注意点全解析
- 问答
- 2026-01-19 22:01:31
- 3
(参考来源:Redis官方文档、主流云服务商最佳实践指南、以及常见的运维经验总结)
快速搭建的核心思路
Redis集群的目标是实现数据分片和高可用,一个正常运行的集群至少需要3个主节点(Master)和3个从节点(Slave),总共6个Redis实例,这是为了保证在部分节点故障时,集群能通过投票机制自动进行故障转移,防止“脑裂”现象(即网络分区导致出现两个都认为自己是主的集群),你可以将这6个实例部署在3台、4台、5台或6台物理机/虚拟机上,但为了高可用,建议至少部署在3台不同的机器上,避免主从节点在同一台机器。
配置步骤(以6个实例,3台机器为例)
假设我们有3台机器,IP分别为 192.168.1.10, 192.168.1.11, 192.168.1.12,计划在每台机器上部署2个Redis实例,一个作为主节点,一个作为从节点,但主从关系是交叉的,确保一个主节点的从节点在另一台机器上。
步骤1:在所有机器上安装Redis 确保三台机器上都安装了相同版本的Redis(建议5.0或以上版本,旧版本配置更复杂),可以通过系统包管理器(如yum, apt)或编译源码安装。
步骤2:准备每个实例的配置文件 在每台机器上,为要启动的两个Redis实例分别创建配置文件和数据目录,在192.168.1.10上:
- 创建目录:
mkdir -p /etc/redis/cluster /var/lib/redis/7000 /var/lib/redis/7001 - 创建第一个实例的配置文件
/etc/redis/cluster/7000.conf核心如下:port 7000 daemonize yes pidfile /var/run/redis_7000.pid logfile /var/log/redis/7000.log dir /var/lib/redis/7000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 15000 appendonly yes bind 0.0.0.0 # 允许所有IP连接,生产环境应绑定内网IP protected-mode no # 关闭保护模式,允许外部连接(生产环境需配合防火墙) - 创建第二个实例的配置文件
/etc/redis/cluster/7001.conf,只需将上面配置中的所有7000改为7001即可。 - 在另外两台机器(192.168.1.11和192.168.1.12)上重复此操作,也创建端口为7002/7003、7004/7005的配置。
步骤3:启动所有Redis实例 在三台机器上,分别启动刚刚配置的Redis实例。
# 在192.168.1.10上
redis-server /etc/redis/cluster/7000.conf
redis-server /etc/redis/cluster/7001.conf
# 在192.168.1.11上
redis-server /etc/redis/cluster/7002.conf
redis-server /etc/redis/cluster/7003.conf
# 在192.168.1.12上
redis-server /etc/redis/cluster/7004.conf
redis-server /etc/redis/cluster/7005.conf
使用 ps -ef | grep redis 检查进程是否正常启动。
步骤4:组建集群
这是最关键的一步,使用Redis自带的redis-cli工具,任意选择一台机器执行创建集群的命令,这个命令会自动分配主从关系和哈希槽(数据分片)。
redis-cli --cluster create \
192.168.1.10:7000 \
192.168.1.11:7002 \
192.168.1.12:7004 \
192.168.1.10:7001 \
192.168.1.11:7003 \
192.168.1.12:7005 \
--cluster-replicas 1
--cluster-replicas 1表示每个主节点带1个从节点。- 命令执行后,工具会给出一个分配方案,检查无误后输入
yes确认,集群会自动开始分配16384个哈希槽到三个主节点上,并建立主从复制关系。
步骤5:验证集群状态 使用以下命令连接任意一个节点并检查集群状态:
redis-cli -h 192.168.1.10 -p 7000 cluster nodes
这条命令会列出集群所有节点的信息,包括ID、角色(master/slave)、状态、以及它负责的哈希槽范围,确认所有节点都是connected状态,并且槽分配正确。
可以尝试设置和读取一个key来测试:redis-cli -h 192.168.1.10 -p 7000 -c (-c 参数表示以集群模式连接,会自动重定向到正确的节点)。
关键注意点全解析
-
防火墙和网络安全:这是最容易出问题的地方,必须确保所有集群节点之间双向的“客户端端口”(如7000-7005)和“集群总线端口”(客户端端口+10000,如17000-17005)是相通的,防火墙规则一定要开放这两个端口范围。
bind配置和protected-mode配置要与网络环境匹配,生产环境强烈建议绑定内网IP并配置防火墙白名单。 -
节点数量:不要尝试搭建只有2个主节点的集群,这无法正常工作,最小高可用集群就是3主3从。
-
系统参数调整:对于Linux系统,可能需要调整内核参数,如增加
net.core.somaxconn(连接队列长度)和禁用透明大页(Transparent Huge Pages),因为THP可能会导致Redis延迟增高,可以通过echo never > /sys/kernel/mm/transparent_hugepage/enabled命令禁用。 -
数据持久化:配置中开启了
appendonly yes(AOF持久化),这比RDB更安全,确保数据目录有足够的磁盘空间,并监控磁盘使用情况。 -
密码认证:如果要求安全认证,需要在所有实例的配置文件中添加
requirepass yourpassword和masterauth yourpassword,并且密码必须一致,否则,节点间无法通信,在创建集群的命令中也要加入-a yourpassword参数。 -
客户端使用:应用程序连接Redis集群时,必须使用支持集群协议的客户端库(如JedisCluster for Java, redis-py-cluster for Python),客户端库会帮你处理重定向,你只需要连接一个或多个入口节点即可。
-
备份与监控:即使有了集群,定期备份数据仍然是必要的,需要建立监控,关注节点的内存使用率、连接数、键数量、网络流量以及集群本身的状态(是否完整、是否有节点失败)。
-
扩缩容:搭建好之后,如果需要增加或减少节点,不能直接修改配置重启,必须使用
redis-cli --cluster add-node等命令进行在线操作,并重新分配哈希槽,这是一个相对复杂的操作,需要提前规划。
通过以上步骤和注意点,你应该可以相对快速且稳健地搭建起一个Redis集群,搭建只是第一步,后续的运维、监控和问题排查同样重要。

本文由盘雅霜于2026-01-19发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/83910.html
