redis 哨兵集群部署
- redis 环境、下载
- redis 一主多从配置
- redis 哨兵集群配置
- redis 启动、验证
redis哨兵集群: 是一个分布式系统,用于对主从结构中的每台服务器进行”监控”,当出现故障时通过投票机制”选择”新的 master 并将所有 slave 连接到新的 master
- 监控: 不断检查 master 和 slave 是否正常运行; master 存活检测、master 与 slave 运行情况检测
- 通知: 当被监控的服务器出现问题时,向其他(哨兵间、客户端)发送通知
- 自动故障转移: 断开 master 与 slave 连接,选取一个 slave 作为 master,将其他 slave 连接到新的 master,并告知客户端新的服务器地址
- 哨兵也是1台redis服务器,只是不提供数据服务。通常哨兵配置数量为奇数台(3、5、7; 基本很少配置1台)
1.0 环境、下载
1.1 Redis 哨兵集群环境
OS | VERSION | IP | ROLE | PORT |
---|---|---|---|---|
CentOS 7.9 | Redis 6.2.0 | 192.168.1.181 | master、sentinel | 2379、26379 |
192.168.1.182 | slave、sentinel | 2379、26379 | ||
192.168.1.183 | slave、sentinel | 2379、26379 |
1.2 Redis 下载地址
1 | # wget https://download.redis.io/releases/redis-6.2.0.tar.gz |
2.0 redis 一主多从安装和配置
2.1 redis 编译安装
1 | // 3 台 redis 主机操作一样 |
2.2 主节点 master 和 sentinel 配置
2.2.1 master 配置
1 | [root@redis01 redis]# vim redis.conf # 仅列出修改了的几个参数 |
2.2.2 sentinel 配置
1 | // 哨兵配置。启动后,会动态改变配置 |
2.3 从节点 slave 和 sentinel 配置
- 3 台哨兵配置完全一样,除 bind 配置各自IP地址外
2.3.1 slave 节点配置
1 | [root@redis02 redis]# vim redis.conf |
2.3.2 slave 节点配置
1 | [root@redis03 redis]# vim redis.conf |
2.3.3 从 sentinel 配置
1 | [root@redis02 redis]# cat sentinel-26379.conf |
2.3.4 从 sentinel 配置
1 | [root@redis03 redis]# cat sentinel-26379.conf |
3.0 服务启动
3.1 systemd 文件配置
- 3 台 redis systemd 配置一样
3.1.1 redis systemd 启动文件配置
1 | # cat /usr/lib/systemd/system/redis.service |
3.1.2 sentinel systemd 启动文件配置
1 | # cat /usr/lib/systemd/system/sentinel.service |
3.2 redis和sentinel服务启动
- redis 服务 和 sentinel 服务启动均有先后顺序; 先启动”master”,再启动”slave”,最后启动”sentinel”哨兵
1 | // 严格按照启动顺序启动服务,否则 sentinel 服务异常 |
3.3 验证集群
1 | [root@redis03 redis]# redis-cli -h 192.168.1.181 -p 6379 # 登录 redis01 |
- 本文作者: [email protected]
- 本文链接: https://www.ink8s.com/2023/08/27/redis-哨兵集群/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!