过程

Redis基础学习(三)主从复制

2021-09-17  本文已影响0人  凯瑟鸭

        今天简单介绍一下Redis高可用的方案主从复制(及读写分离),主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点,后者称为从节点;数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

        主从复制的作用是:读写分离,可以由主节点提供写服务,由从节点提供读服务,这样来扩展主节点的读能⼒,分担主节点读压⼒、容灾恢复,⼀旦主节点宕机,从节点作为主节点的备份可以随时顶上来、主从复制还是哨兵和集群能够实施的基础。

一些相关的配置:

replica-read-only yes:从节点开启只读模式(默认)

masterauth xxxx:从节点访问主节点的密码

repl-disable-tcp-nodelay no:与命令传播阶段的延迟有关

min-slaves-to-write 3与min-slaves-max-lag 10:规定了主节点的最小从节点数目,及对应的最大延迟

replicaof ip 端口:哪个主节点进⾏复制

主从复制同步数据的方式:

主从刚连接的时候,进⾏全量同步、全同步结束后,进⾏增量同步

全量复制:用于初次复制或其他无法进行部分复制的情况,将主节点中的所有数据都发送给从节点。主服务器收到全量复制的命令后会执行bgsave开启⼀个后台进程⽤于将redis中的数据⽣成⼀个rdb⽂件,主服务器会缓存所有接收到的来⾃客户端的写命令,当后台进程bgsave执行完成后,会将该rdb⽂件传递给从服务器从服务器会将rdb⽂件保存在磁盘并通过读取该⽂件将数据加载到内存,之后主服务器会将在此期间缓存的命令通过redis传输协议发送给从服务器然后从服务器将这些命令依次作⽤于⾃⼰本地的数据集上最终达到数据的⼀致性。

增量复制:从服务器初始化后开始正常⼯作时主服务器发⽣的写操作同步到从服务器的过程。主服务器每执⾏⼀个写命令就会向从服务器发送相同的写命令,从服务器接收并执⾏收到的写命令。

特点:

        主从复制对于主/从redis服务器来说是⾮阻塞的,所以同步期间都可以正常处理外界请求

        ⼀个主redis可以含有多个从redis,每个从redis可以接收来⾃其他从redis服务器的连接

        从节点不会让key过期,⽽是主节点的key过期删除后,成为del命令传输到从节点进⾏删除

若有不对之处还希望指正为谢!@~@

引用:《Redis设计与实现》、《Redis实战》

上一篇 下一篇

猜你喜欢

热点阅读