首页 / REDIS / 【Redis】哨兵机制
【Redis】哨兵机制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Redis】哨兵机制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3186字,纯文字阅读大概需要5分钟。
内容图文
![【Redis】哨兵机制](/upload/InfoBanner/zyjiaocheng/1236/84d536cfb65a4d6c99c2c355a8ebc5b4.jpg)
一、概述
什么是哨兵机制
- Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:
- 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。
- 提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。
- 自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master; 当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。
- 哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master.
- 每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的”主观认为宕机” Subjective Down,简称sdown).
- 若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置.
- 虽然哨兵(sentinel) 释出为一个单独的可执行文件 redis-sentinel ,但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动哨兵(sentinel).
- 哨兵(sentinel) 的一些设计思路和zookeeper非常类似
二、环境配置
2.1 虚拟机
- 哨兵机制的作用:管理集群redis、监控选举策略、心跳检测,(独立的一个应用程序)
- 环境配置 实现三台不同服务器的redis实现集群(克隆)
- 直接先安装一台,后面两台全部克隆
192.168.212.145 主redis服务器
192.168.212.147 从redis
192.168.212.148 从redis
2.2 安装Redis
#下载Redis安装包
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
#解压Redis安装包
tar -zxvf redis-3.2.9.tar.gz
#安装
cd redis-3.2.9
make
cd src
make install PREFIX=/usr/local/redis
#移动配置文件到安装目录下
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc
#配置redis为后台启动修改密码
vi /usr/local/redis/etc/redis.conf
# 将daemonize no 改成daemonize yes
# requirepass 123
#开启redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
#连接Redis客户端
./redis-cli -h 127.0.0.1 -p 6379 -a "123456"
PING #结果表示成功
#关闭防火墙
#临时关闭
systemctl stop firewalld
#禁止开机启动防火墙
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
#停止Redis服务
./redis-cli -h 127.0.0.1 -p 6379 -a "123456" shutdown
#修改redis.conf
#开启外网访问 ,注释掉下面的
#bind 127.0.0.1
#注意事项:
#1.修改redis为后台启动进程
# 将daemonize no 改成daemonize yes
#2.允许IP地址访问
#注释掉#bind 127.0.0.1
#3.修改redis启动密码
# requirepass 12356
2.3 配置主从复制
配置主从复制:将从服务器的slaveof 指向主服务器,并设置访问密码
连接客户端之后可以,输入info命令可以查看当前redis的信息,1可以看出145为主服务器,148服务器为从服务器:
-
集群最重要的一步:关闭所有防火墙
-
如果在集群的时候,之前的主redis同步密码一定要指向。集群的所有服务器都要开启密码
2.4 配置哨兵
我们在从服务器上配置哨兵:
#实现步骤:
#1.将redis根目录下的sentinel.conf 拷贝到etc目录
cp sentinel.conf /usr/local/redis/etc
#2.修改sentinel.conf配置文件
sentinel monitor mymaster 192.168.110.133 6379 1 #主节点 名称 IP 端口号 选举次数
sentinel auth-pass mymaster 123456
#3. 修改心跳检测 30毫秒
sentinel down-after-milliseconds mymaster 30
#4.
sentinel parallel-syncs mymaster 2 # 做多少合格节点
2.5 测试
- 启动哨兵
- 启动redis,先启动主redis,后启动从redis(不然哨兵就意味主redis挂掉了)
#1. 进入到bin目录中,启动哨兵模式
./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &
- 这个时候启动了三个redis服务器,如果145主服务器挂掉了,主服务器会转移到从服务器上,如果之前的主服务器恢复了,它会变为从服务器。(如果在集群的时候,之前的主redis同步密码一定要指向。集群的所有服务器都要开启密码)
2.6 疑惑(待解决)
现在我并不知道,配置哨兵的时候是随便配置在那一台服务器上都可以,还是配置在从服务器上,而且如果有哨兵配置的服务器挂掉了,那又会发生什么呢?
原文:https://www.cnblogs.com/haoworld/p/redis-shao-bing-ji-zhi.html
内容总结
以上是互联网集市为您收集整理的【Redis】哨兵机制全部内容,希望文章能够帮你解决【Redis】哨兵机制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。