- 主从架构的核心原理
当启动一个slave node的时候,它会发送一个psync命令给master node。如果这是slave node重新连接master node,那么master node仅仅会复制给slave部分缺少的数据;否则如果是slave node第一次连接master node,那么会触发一次full resynchronization,开始full resynchronization的时候,master会启动一个后台线程,开始生成一份RDB快照文件,同时还会将从客户端收到的所有写命令缓存在内存中,RDB文件生成完毕后,master会将这个RDB发送个slave,slave会先写入本地磁盘,然后再从本地磁盘加载到内存中,然后master会将内存中缓存的写命令发送给slave,slave也会同步这些数据。
slave node如果跟master node有网络故障,断开了连接,会自动重连,master如果发现有多个slave node都来重新连接,仅仅会启动一个rdb save操作,用一份数据服务所有slave node。 - 主从复制的断点续传
从redis2.8开始,就支持主从复制的断点续传,如果主从复制过程中,网络连接断掉了,那么可以接着上次复制的地方继续复制下去。 - 无磁盘化复制
master在内存中直接创建rdb,然后发送给slave,不在在自己本地落磁盘。 - 过期key处理
slave不会过期key,只会等待master过期key,如果master过期了一个key,或者通过LRU淘汰了一个key,那么会模拟一条del命令发送给slave。
redis主从架构原理、主从复制的断点续传、无磁盘化复制、过期key处理
最新推荐文章于 2021-04-22 10:58:45 发布