什么是一主多从?
主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主
意义是有什么?
可以实现读写分离,性能扩展
容灾快速恢复,假如从机有一个机器宕机,仍然可以读取其他服务器
常用配置:
info replication :查看当前redis角色信息,以及主从信息
如何实现主从效果?
主服务器无需配置,从服务器配置:
slaveof ip port 配置当前从服务器的主机,主机的ip和端口
如果主机中有密码,在从服务中配置文件中还必须修改masterauth设置主机密码
假如主服务器宕机或者从服务器宕机是什么效果?
主服务器宕机:
从服务器仍然以宕掉的主服务器为主机,但是会显示已宕机
从服务器宕机:
当从服务器宕机,则会取消与主机的关联效果,服务恢复后,需要重新使用slaveof命令进行关联,关联以后,从服务器会向主机发送同步数据请求,主服务器接到请求后,会把持久化的rdb文件发送给从服务器,从服务器拿到rdb文件后进行读取,仅此连接一次是从服务器向主服务器发送请求,其他时候都是主服务器有数据更改后,主动进行同步
薪火相传:
薪火相传的概念很简单,其实就是说当主服务器下有多台从服务器时,主服务器直接管理会比较麻烦,这个时候就可以将从服务器划分为多个小组,每个小组都有组长,他们负责管理小组成员,即组长就是组员的主服务器,这个需要配置,主服务器只要管理组长就可以了
反客为主:
就是说当主服务器宕机以后,从服务器可以充当主服务器的角色,只需要在从服务中写入命令slaveof no one 即可将改从服务器上升为主服务器,但是需要手动完成,这个时候就出现了哨兵模式
哨兵模式:
其实就是反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库
如何实现哨兵模式?
1.在自定义文件夹下创建一个sentinel.conf文件,名字不能错,在里边写上一句命令即可:
sentinel monitor mymaster 要监视的主机ip 主机端口 坚持主机的sentinal服务数量
启动方式:
redis-sentinel /sentinel.conf配置文件地址
sentinel从机选举策略是什么呢?
选择条件依次是:
1.选择优先级靠前的(在redis.conf文件中有这样一个配置,replica-priority 10,后边的数字越小代表优先级越高)
2.选择偏移量最大的(就是数据和主服务越相近,偏移量越大)
3.选择runid最小的从服务(每个redis启动后都会随机生成一个runid)