SpringBoot--Redis集群配置
·
SpringBoot–Redis集群配置
1. Redis集群的三种方式
1.1 主从模式 (Master-Slave)
- 架构:一个主节点 + 一个或多个从节点
- 读写分离:主节点负责写,从节点负责读
- 缺点:主节点故障时需要手动切换,无自动故障恢复
1.2 哨兵模式 (Sentinel)
- 功能:监控Redis系统运行状态
- 自动故障迁移:主节点故障时自动选举新主节点
- 需要部署:独立的哨兵进程
1.3 集群模式 (Cluster)
- 数据分片:将键空间分为16384个槽位
- 分布式存储:每个主节点负责部分槽位
- 高可用性:自动故障转移和数据复制
2. 主从复制搭建
2.1 环境准备
# 三个Redis实例
Redis6379 (主节点)
Redis6380 (从节点)
Redis6381 (从节点)
2.2 配置文件修改
在redis.windows.conf文件中修改
主库配置 (6379)
port 6379
dbfilename dump6379.rdb
从库配置
port 6380/6381
dbfilename dump6380.rdb/dump6381.rdb
slaveof 127.0.0.1 6379 # 指定主库
masterauth "123456" # 主库密码

2.3 验证主从复制
# 查看复制信息
127.0.0.1:6381> info replication
# 输出示例
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
3. 主从复制原理
3.1 复制流程
- SYNC命令:从库向主库发送SYNC命令
- RDB快照:主库执行RDB持久化,缓存写命令
- 数据传输:主库发送快照文件和缓存命令
- 数据加载:从库载入快照并执行命令
- 持续同步:主库持续发送写命令
3.2 无磁盘复制
# 避免磁盘IO瓶颈
repl-diskless-sync yes
3.3 故障处理
从节点宕机
- 重启后自动重新加入集群
- Redis 2.8+ 支持增量复制
主节点宕机
- 手动执行
SLAVEOF NO ONE提升从节点为主节点 - 重启原主节点并设置为从节点
4. 哨兵模式配置(一主二从三哨兵)
4.1 哨兵配置文件 (sentinel.conf)
# 哨兵端口
port 26379
# 绑定IP
bind 127.0.0.1
# 监控主服务器 (2表示需要2票选举)
sentinel monitor mymaster 127.0.0.1 6379 2
# 响应超时时间
sentinel down-after-milliseconds mymaster 5000
# 故障转移超时
sentinel failover-timeout mymaster 5000
# 主库密码
sentinel auth-pass mymaster 123456
# 并行同步数量
sentinel config-epoch mymaster 2
注意: 三个都需要修改port 分别是26379,26380,26381 sentinel monitor mymaster 127.0.0.1 6379 2 端口号6379不需要修改 三个文件都一样
4.2 启动哨兵
- 创建
startup_sentinel.bat
# 启动哨兵服务 记事本打开bat文件文件,写入内容
redis-server.exe sentinel.conf --sentinel

5. 哨兵工作原理
5.1 监控机制
- 独立进程:哨兵作为独立进程运行
- 相互监控:多个哨兵之间互为监控
- 心跳检测:定期检查Redis节点状态
5.2 故障转移流程
- 主观下线:单个哨兵认为主节点不可用
- 客观下线:多个哨兵确认主节点故障
- 选举领导:哨兵之间选举领导哨兵
- 故障转移:领导哨兵执行故障转移
- 配置更新:更新其他节点的配置
5.3 测试场景
从机宕机:
- 哨兵检测到但从机恢复后自动重新加入
主机宕机:
# 哨兵日志显示故障转移
-switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380
- 自动选举新主节点(如6380)
- 原主节点恢复后成为从节点
6. 优缺点对比
6.1 主从模式
优点:简单、读写分离
缺点:无自动故障恢复
场景:对高可用性要求不高的场景
6.2 哨兵模式
优点:自动故障迁移、高可用性
缺点:配置复杂、需要额外资源
场景:对高可用性有要求的场景
6.3 集群模式
优点:高可用、高扩展、数据分片
缺点:配置复杂、节点协同
场景:大规模、高并发、高可用场景
7. 最佳实践
- 生产环境:至少使用3个哨兵实例
- 网络配置:确保节点间网络通畅
- 监控告警:设置哨兵监控和告警机制
- 数据备份:定期备份重要数据
- 性能测试:在生产前进行充分的性能测试
更多推荐
所有评论(0)