Redis主从复制
Master/Slave:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主
主从复制的配置:配从(库)不配主(库)
从库配置:slaveof 主库IP 主库端口 :每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
主从复制常用3招
1. 一主二从
从机只能读不能写,主机死后从机还是从机,依然不能写入,从机死后若没有配在redis.conf文件里会变成单独的主机,需重新SLAVEOF一下主机,但是若配置在redis.conf文件的话,如果主机宕机就会报连接异常
2. 薪火相传
上一个Slave可以是下一个slave的Master,Slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻master的写压力(链式:1是2的主机2是3的主机3是4的主机;只有1是master其余的都还是slave)
3. 反客为主
当主机宕机后,从机执行SLAVEOF no one 命令成为主机,就算主机再回来也是单独的主机,不在主从复制的体系内
SLAVEOF no one :使当前数据库停止与其他数据库的同步,转成主数据库
4. 哨兵模式
实际上是反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库
一主二从为例:
① 自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错
②. 配置哨兵,填写内容
sentinel monitor hostName 127.0.0.1 6379 1
hostName为被监控数据库名字(自己起名字)
上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机
③ 启动哨兵 :Redis-sentinel /myredis/sentinel.conf
④ 当主机当即后会投票选举主机,如果当初的主机再回来之后会变为从机