1.哨兵机制
首先我的白话解释就是,几台具有主从复制关系的redis,当其中的主机redis宕机之后,其中的随机一台从机redis就会主动变为主机redis,以便不影响正常运行。
下面是比较专业的解释:
哨兵机制(监听)监控,提醒,自动故障迁移
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).
怎样实现哨兵机制
将redis下的sentinel.conf文件拷贝到你redis备份配置文件的目录下,然后进行修改
1.修改主机信息
sentinel monitor mymaster 192.168.110.100 6379 1 #主节点 名称 IP 端口号 选举次数
2.修改心跳检测 5000毫秒
3.sentinel parallel-syncs mymaster 2 — 做多少个合格节点
4.启动redis,需要启动将两个配置文件都启动起来
./redis-server /你的配置文件目录/redis.conf
./redis-server /你的配置文件目录/sentinel.conf --sentinel &
5.杀死主机,再次查看从机会有一台变为master,当再次启动先前的主机,就变成了从机
2.redis持久化
什么是Redis持久化,就是将内存数据保存到硬盘。
Redis 持久化存储 (AOF 与 RDB 两种模式)
1.RDB持久化
在900秒(15分钟)内如果至少有1个键值发生变化 就保存
在300秒(6分钟)内如果至少有10个键值发生变化 就保存
Shutdown关闭还是会保存
kill不会保存
2.AOF持久化
修改redis.conf文件中的属性
AOF 实时日志存储
appendonly yes
改为yes之后,每次的存值都会保存到日志中,会自动生成一个appendonly.aof文件