Redis学习第四节

来源:互联网 发布:ae cc2018 for mac 编辑:程序博客网 时间:2024/06/06 00:34

主从复制(Master/Slave)

主机数据更新后根据配置和策略,自动同步到备机的master/slave机制。  MASTER以写为主。SLAVE以读为主。


配从(库)不配主(库):从库配置,slaveof主库IP+主库端口-------每次与master断开后需要重新连接,除非配置到redis.cof

     info  replication ,显示主从信息。

一主二仆:

   在辅机,slaveof 主机IP+端口。之后的主机所有的数据(命令之前主机已经存在的数据也包含),全都可以在辅机获取。

   如果在 主机set k1 v1 ,之后再在辅机,set k1 v11,报错。(读写分离,只有主机可以写)。

   如果主机挂掉,辅机还是辅机,连接状态不是up是down。 主机恢复,仍继续工作。

   如果辅机挂掉,再次恢复,变为主机,主机在挂掉期间,数据没有,需要重新连接。

薪火相传:

   一个一个传下去,去中心化。从一对多,到一对一。 上一个slave是下一个的master。slave同样可以接受其他slave的连接和同步请求,slave作为链条中下一个master。可以有效减轻写压力。

  中途转向,会清除之前的数据,重新拷贝最新的数据。

  中间的辅机还是slave

反客为主:

  在辅机输入slaveof no one。另一个辅机需要重新连接。当主机回来之后。还是master但是没有辅机了。


复制原理:

   在Slave 成功连接到master后会发一个sync命令。  master接受到命令后,启动后台存盘进程。同时收集所有接受到用于修改数据集命令。后台执行完之后将数据文件传输到slave以完成一次同步。

全量复制:slave收到数据库文件后将存盘放入内存。

增量复制:master继续将新的所有收集到的修改命令依次传给slave.

只要重新连接一次,全量复制将被执行。


哨兵模式:

   监听,反客为主的自动版。 有一个哨兵巡逻,一旦主机挂了。剩下的辅机投票,谁票多,谁就做为主机

   在redis目录下新建sentinel.cof ,sentinel  monitor 被监控主机名字  主机地址 端口号  票多于几就是主机。

   启动:redis-sentinel +cof文件,开始巡逻。

   如果主机挂掉,会在辅机选出主机(平票重新投)。当主机恢复,将变成辅机。

   一组sentinel能监控多个master。

  缺点:复制延迟。