以前在系统分析师中学习到了Redis哨兵模式,只知道其中基本概念,但不知道怎么去配这个,今天看到某项目,特意记录下其配置过程。哨兵模式比主从模式,更具有容错性。
Redis分布式存储方案
分布式存储方案 | 核心特点 |
主从(Master/Slave)模式 | 一主多从,故障时手动切换 |
哨兵(Sentinel)模式 | 有哨兵的一主多从,主节点故障自动选择新的主节点 |
集群(Cluster)模式 | 分节点对等集群,分slots,不同slots的信息存储到不同节点 |
如下,配置2个哨兵
步骤 1: 创建 Sentinel 配置文件
- 在每台服务器上(或单独一台服务器上)创建 Sentinel 使用的配置文件,比如 sentinel_26379.conf, sentinel_26380.conf在配置文件中添加以下基本配置:
port 26379
另外一个文件:
port 26380
步骤 2: 配置哨兵监控 Redis 主从节点
- 打开每个 Sentinel 配置文件,在文件末尾添加以下内容来配置哨兵监控 Redis 主从节点:
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
- mymaster 是要监控的 Redis 实例的名字
- 127.0.0.1 和 6379 是 Redis 主节点的 IP 地址和端口号
- 2 是 Sentinel 每隔 2 秒进行一次监控
这里要注意,尽量填写mymaster对外的ip地址(比如网卡地址),java等应用程序,就是依靠这条配置获取master的地址。
步骤 3: 启动 Sentinel 进程
- 在每台(或单独一台服务器上)服务器上启动 Sentinel 进程,使用以下命令:
redis-server /path/to/sentinel_26379.conf --sentinel
redis-server /path/to/sentinel_26380.conf --sentinel
检查配置和启动情况
通过以下命令检查各个 Sentinel 进程是否已经正确启动:
ps aux | grep redis-server
# 或
ps -ef | grep redis-server
如下截图: