一、图解redis replication基本原理
二、redis replication的核心机制
三、master持久化对于主从架构的安全保障的意义node
redis replication -> 主从架构 -> 读写分离 -> 水平扩容支撑读高并发redis
redis replication的最最基本的原理,铺垫安全
------------------------------------------------------------------------架构
------------------------------------------------------------------------并发
(1)redis采用异步方式复制数据到slave节点,不过redis 2.8开始,slave node会周期性地确认本身每次复制的数据量
(2)一个master node是能够配置多个slave node的
(3)slave node也能够链接其余的slave node
(4)slave node作复制的时候,是不会block master node的正常工做的
(5)slave node在作复制的时候,也不会block对本身的查询操做,它会用旧的数据集来提供服务; 可是复制完成的时候,须要删除旧数据集,加载新数据集,这个时候就会暂停对外服务了
(6)slave node主要用来进行横向扩容,作读写分离,扩容的slave node能够提升读的吞吐量异步
slave,高可用性,有很大的关系高并发
------------------------------------------------------------------------spa
若是采用了主从架构,那么建议必须开启master node的持久化!内存
不建议用slave node做为master node的数据热备,由于那样的话,若是你关掉master的持久化,可能在master宕机重启的时候数据是空的,而后可能一通过复制,salve node数据也丢了同步
master -> RDB和AOF都关闭了 -> 所有在内存中
master宕机,重启,是没有本地数据能够恢复的,而后就会直接认为本身的数据是空的
master就会将空的数据集同步到slave上去,全部slave的数据所有清空
100%的数据丢失
master节点,必需要使用持久化机制
第二个,master的各类备份方案,要不要作,万一说本地的全部文件丢失了; 从备份中挑选一份rdb去恢复master; 这样才能确保master启动的时候,是有数据的
即便采用了后续讲解的高可用机制,slave node能够自动接管master node,可是也可能sentinal尚未检测到master failure,master node就自动重启了,仍是可能致使上面的全部slave node数据清空故障