Redis设计与实现笔记(十五) | 复制

前面主要是在数据结构和单机服务器角度分析redis的底层实现。本篇讲解的是多服务器上的redis怎么实现数据复制的。在redis中只支持主从复制。

复制是一个在数据库领域的基本的机制,每个数据库都有自己不同的实现方式。无论是RDB 还是NoSQL,会有复制这个概念。如MySQL中的复制,mongodb中的副本集等等。只要说到复制,就免不了谈俩个概念:数据一致性 和 读写分离,这两个概念也会在此博文中详细讲解。闲话不谈,开始正文。

15.1 SLAVEOF

复制的前提是先确立多台服务器的主从关系。redis中,一台服务器可以有多台从服务器。同样,一台从服务器也可以有多台从服务器。只要设置了从属关系,从服务器就就可以对其主服务器进行同步了。SLAVEOF 用于设置多台服务器的从属关系。

命令具体用法:

1. SLAVEOF   masterhost   Port

说明:把当前服务器设置为某服务器(masterhost)的从属服务器。如果当前服务器已经是某服务器的从属服务器,再执行此命令的话,此服务器会立即停止对旧数据库的同步,并且清空旧的数据集。然后对新服务器进行数据同步,成为新服务器的从服务器。

2. SLAVEOF NO ONE

说明:这是针对从服务器而言的。如果针对某从服务器执行此命令,那么它就会“终止”与原主服务器的关系,停止对原数据库的同步,但是不清空本服务器的数据集。在哨兵系统中,当主库挂掉之后,可对从库升级成主库。

15.2  复制

复制具体实现主要分为两个阶段:2.8版本之前 与 2.8版本之后。2.8之后的版本对2.8之前的版本的基础上进行了改进,进行了优化。两者的关系并不是说另起炉灶,而是发展进步。

1.   Version 2.8之前

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值