1、配从(库)不配主(库)

2、配从(库): slaveof 主库IP 主库端口

3、主写从读、读写分离

4、从连前后同

5、主断从待命、从断重新连

一主二从搭建

1、一台服务器模拟三台主机:

第一步:将redis.conf 拷贝三份,名字分别是,redis6379.conf,redis6380.conf,redis6381.conf

redis 6主6从 redis一主二从_服务器

redis 6主6从 redis一主二从_数据库_02

redis 6主6从 redis一主二从_redis_03

第二步:修改三个文件的port端口,pid文件名,日志文件名,rdb文件名

如:

port 6379

pidfile /var/run/redis_6379.pid

logfile "6379.log"

dbfilename dump6379.rdb

redis 6主6从 redis一主二从_redis 6主6从_04

 

redis 6主6从 redis一主二从_redis 6主6从_05

redis 6主6从 redis一主二从_服务器_06

redis 6主6从 redis一主二从_redis_07

第三步:分别打开三个窗口模拟三台服务器,开启redis服务。

redis 6主6从 redis一主二从_数据库_08

redis 6主6从 redis一主二从_redis_09

redis 6主6从 redis一主二从_redis 6主6从_10

redis 6主6从 redis一主二从_数据库_11

通过redis客户端分别连接三台redis服务

redis 6主6从 redis一主二从_redis 6主6从_12

redis 6主6从 redis一主二从_数据库_13

redis 6主6从 redis一主二从_重启_14

2、查询主从信息:info replication

redis 6主6从 redis一主二从_redis_15

3、写操作6379:

   

redis 6主6从 redis一主二从_redis_16

另外两台查看是否有6379设置的k1

redis 6主6从 redis一主二从_服务器_17

redis 6主6从 redis一主二从_重启_18

 说明三台主机相互独立

4、设置主从关系:

在6380和6381主机上分别执行命令:slaveof 127.0.0.1 6379

redis 6主6从 redis一主二从_redis_19

redis 6主6从 redis一主二从_redis 6主6从_20

5、全量复制:在6380和6381分别执行命令get k1

redis 6主6从 redis一主二从_重启_21

redis 6主6从 redis一主二从_redis 6主6从_22

6、增量复制:6379执行命令:set k2 v2。然后6380端口和6381端口,分别执行命令:get k2

redis 6主6从 redis一主二从_重启_23

redis 6主6从 redis一主二从_服务器_24

redis 6主6从 redis一主二从_服务器_25

7、主写从读、读写分离:在6380和6381上执行写操作set k3 v3

redis 6主6从 redis一主二从_数据库_26

redis 6主6从 redis一主二从_重启_27

8、主机宕机:6379执行指令shutdown,并查看6380和6381的redis信息

redis 6主6从 redis一主二从_重启_28

redis 6主6从 redis一主二从_redis_29

redis 6主6从 redis一主二从_重启_30

从机原地待命。

9、主机宕机后恢复:重启6379,并且执行写命令set k4 v4;6380和6381上分别执行get k4

redis 6主6从 redis一主二从_redis_31

 

redis 6主6从 redis一主二从_重启_32

redis 6主6从 redis一主二从_服务器_33

主机重启后,一切正常。

10、从机宕机:6380执行指令shutdown,并查看6379和6381的redis信息

redis 6主6从 redis一主二从_redis 6主6从_34

redis 6主6从 redis一主二从_重启_35

redis 6主6从 redis一主二从_redis 6主6从_36

11、从机宕机后恢复:重启6380,并查看6380、6379和6381的redis信息

redis 6主6从 redis一主二从_重启_37

redis 6主6从 redis一主二从_数据库_38

redis 6主6从 redis一主二从_redis_39

注意:从机跟master断开联系,必须重新连接,除非写进配置文件。

12、从机恢复连主机前,主机写操作:6379执行写命令set k5 v5,6380和6381分别执行命令get k5

redis 6主6从 redis一主二从_redis_40

redis 6主6从 redis一主二从_redis_41

redis 6主6从 redis一主二从_数据库_42

13、从机恢复连接主机,6380执行命令:slaveof 127.0.0.1 6379,并且执行命令:get k5

redis 6主6从 redis一主二从_redis_43

 

14、从机上位:

第一步:主机宕机,6379执行命令:shutdown

redis 6主6从 redis一主二从_redis 6主6从_44

第二步:6380断开主从关系,执行命令:SLAVEOF no one

redis 6主6从 redis一主二从_redis_45

 

第三步:重新搭建主从,6381执行命令:info replication,SLAVEOF 127.0.0.1 6380

redis 6主6从 redis一主二从_redis 6主6从_46

 

第四步:之前主机恢复,重启6379的Redis服务,并执行命令:info replication

redis 6主6从 redis一主二从_redis 6主6从_47

 

在6379主机宕机后,6380从机断开主从关系,6381开始还在原地待命;后来6380从机上位,6381投靠6380,6379主机即使回来但它已是孤寡老人,空头司令。

15、天堂变地狱:6379执行命令saveof 127.0.0.1 6381,并在6379和6381执行info replication

 

redis 6主6从 redis一主二从_redis 6主6从_48

 

redis 6主6从 redis一主二从_服务器_49

一台主机配多台从机,一台从机再配多台从机,从而实现了庞大的集群架构。同时也减轻了一台主机的压力,缺点是增加了服务器间的延迟。