1、主从复制是什么?
主从复制就是主机数据更新后根据配置和策略,自动同步到备机的master/slave机制,Master以写为主,Slave以读为主,这样能更好地实现读写分离,性能扩展,容灾快速恢复
2、准备,拷贝多个redis.conf,开启daemonize yes,改写pid文件名,指定端口,log文件名,dump.rdb名
分别配置端口6379 6380 6381 并更改其他配置 如下:
3、用 info replication 的命令查看主从复制的相关信息(这里79是主机,80,81是从机)slaveof <ip><port>命令成为某个实例的服务器
4、一主二仆模式演示:常见现象一,主机写,从机读
从机是否能写?(从机只读)
从机是否能复制主机之前已经写入的数据?(从机宕机,主机写入数据,从机再重启)
主机宕机,从机上位还是原地待命?(待命)
主机恢复,新增记录,从机是否还能顺利复制?(是,主机恢复之后,依然是主机,恢复原来的一主二从体系)
如果从机宕机,恢复后,数据还能是否能跟上?(不能,从机宕机,恢复后是自己的主机,数据跟不上)
5、复制原理
每次从机联通后,都会给主机发送sync指令
主机立刻进行存盘操作,发送RDB文件给从机
从机接收到RDB文件后,进行全盘加载
之后每次主机写操作,都会立刻发送给从机,从机执行相同的命令
6、薪火相传
上一个slave可以是下一个slave的Master,slave同样可以接收到其他slaves的链接和同步请求,那么该slave作为了链条中的下一个的master。可以有效减轻master的写压力,去中心化降低风险
7、哨兵模式
能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库
配置哨兵模式:调整为一主二仆,新建一个sentinel.conf文件,在配置文件中写入:
启动哨兵模式:执行redis-sentinel /usr/local/redis-5.0.5/sentinel.conf 命令
主机 6379宕机后,查看哨兵模式选举,6381晋升为主机,6379恢复后默认为从机