1. 准备环境:至少6台服务器,每台安装Redis 5.0+版本。2. 修改redis.conf:cluster-enabled yes,cluster-config-file nodes.conf,cluster-node-timeout 15000,appendonly yes。3. 启动所有节点:redis-server redis.conf。4. 创建集群:redis-cli --cluster create 192.168.1.101:7000 192.168.1.101:7001 192.168.1.102:7000 192.168.1.102:7001 192.168.1.103:7000 192.168.1.103:7001 --cluster-replicas 1。5. 检查集群:redis-cli -c -h 192.168.1.101 -p 7000 cluster info。
步骤一:环境准备
首先,我们需要准备好6台机器(3主3从),每台机器安装好redis,并且修改redis.conf文件,主要是cluster-enabled yes,cluster-config-file nodes.conf,cluster-node-timeout 15000,appendonly yes。然后分别在6个端口启动redis实例,比如7000,7001,7002,7003,7004,7005。
步骤二:创建集群
使用redis-cli --cluster create命令创建集群,参数为各个节点地址,最后--cluster-replicas 1表示每个主节点有一个从节点。命令如下: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 Cluster内置高可用机制,通过主从复制和哨兵模式实现。每个主节点分配一个从节点,当主节点故障时,从节点自动提升为主节点。配置中设置cluster-require-full-coverage no,避免部分节点故障导致整个集群不可用。
快速部署脚本
#!/bin/bash for port in 700{0..5}; do redis-server /etc/redis-$port.conf & done redis-cli --cluster create $(seq 7000 7005 | xargs -I {} echo 127.0.0.1:{}) --cluster-replicas 1
验证集群
连接集群:redis-cli -c -p 7000,执行cluster nodes查看节点信息,cluster info查看状态。测试数据写入:set key1 value1,get key1,确保哈希槽分配正确。
常见问题处理
如果节点启动报错,检查端口占用和防火墙。集群创建失败,重启所有节点后重新create。扩容时使用cluster add-node命令。
FAQ
Q: Redis集群需要几台机器?
A: 最小3主3从,共6台。
Q: 如何添加新节点?
A: redis-cli --cluster add-node 新节点IP:端口 现有节点IP:端口。
Q: 主节点挂了怎么办?
A: 从节点自动 failover,无需手动干预。
Q: 如何备份集群数据?
A: 定期 RDB 或 AOF 备份每个节点。