Redis集群搭建的核心步骤:准备6个Redis实例(3主3从),每个节点配置cluster-enabled yes,cluster-config-file nodes.conf,cluster-node-timeout 15000。启动所有节点后,使用redis-cli --cluster create命令创建集群:redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1。验证集群:redis-cli -c -p 7000 cluster info,cluster_state:ok表示成功。测试数据分片:set key1 value1,get key1正常返回。
环境准备
首先,我们需要准备好Redis安装环境。本教程基于Redis 5.0以上版本,支持原生集群模式。下载Redis源码,编译安装:wget http://download.redis.io/releases/redis-6.2.7.tar.gz,tar -zxvf redis-6.2.7.tar.gz,cd redis-6.2.7,make && make install。创建6个节点目录:mkdir -p /data/redis/{7000..7005},每个目录复制redis.conf,修改port、pidfile、logfile、dbfilename、dir等配置。
配置文件修改
关键配置:bind 0.0.0.0,protected-mode no,port 7000(对应节点),cluster-enabled yes,cluster-config-file nodes-7000.conf,cluster-node-timeout 15000,appendonly yes。注意关闭daemonize,使用后台启动:redis-server redis-7000.conf &。依次启动所有节点:ps -ef|grep redis检查进程。
创建集群
使用redis-cli工具创建:./redis-cli --cluster create 192.168.1.100:7000 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 --cluster-replicas 1。输入yes确认。创建成功后,查看集群信息:./redis-cli -c -p 7000 cluster nodes,显示所有节点slot分配,主从关系。
集群验证与测试
连接集群:redis-cli -c -p 7000,set testkey "cluster test",get testkey。故意kill主节点,观察从节点自动 failover:kill -9 PID,cluster nodes查看新master。压力测试:redis-benchmark -c 100 -n 100000 -h 127.0.0.1 -p 7000,QPS大幅提升,无单点风险。
生产部署注意事项
多机部署:主节点分布不同机器,从节点异机备份。sentinel结合使用监控。持久化:AOF+RDB双保险。网络:低延迟内网,防火墙开放端口。扩容:cluster add-node加入新节点,cluster reshard重新分slot。监控:prometheus+grafana集成Redis exporter。
常见故障排除
集群无法创建:检查端口连通,防火墙,cluster-enabled。节点频繁切换:调大cluster-node-timeout。slot不均衡:手动reshard。数据丢失:检查appendonly yes,重启恢复AOF。
FAQ
Q: Redis集群如何处理主节点故障?
A: 从节点自动选举为主节点,客户端透明切换,无服务中断。
Q: 集群支持哪些数据结构?
A: 支持String, Hash, List, Set, Sorted Set,但事务、多DB不支持。
Q: 如何扩容集群节点?
A: cluster add-node添加新节点,然后cluster reshard迁移slot。
Q: 单机多实例性能如何?
A: 6节点集群QPS可达10w+,远超单机瓶颈。