一、简介
一个Redis服务可以有多个该服务的复制品,这个Redis服务称为Master,其它复制称为Slaves。
如图中所示,我们将一台Redis服务器作主库(Matser),其他三台作为从库(Slave),主库只负责写数据,每次有数据更新都将更新的数据同步到它所有的从库,而从库只负责读数据。这样一来,就有了两个好处:
(1) 读写分离,不仅可以提高服务器的负载能力,并且可以根据读请求的规模自由增加或者减少从库的数量。
(2)数据被复制成了了好几份,就算有一台机器出现故障,也可以使用其他机器的数据快速恢复。
需要注意的是:在Redis主从模式中,一台主库可以拥有多个从库,但是一个从库只能隶属于一个主库。
二、 Redis主从复制配置
在Redis中,要实现主从复制架构非常简单,只需要在从数据库的配置文件中加上如下命令即可(笔者是在同一台机器上实现主从复制的):
1.把redis的原始配置文件复制两份,原始的配置文件作为Master的配置文件,另外两个作为Slave的配置文件
2、Master的配置文件与默认文件相比我只修改了3个地方。
#系统默认是no, Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启动守护线程。
daemonize yes
#绑定的主机地址,默认只能本机访问,我把这个注释掉了
#bind 127.0.0.1
#非保护模式,这是 是redis3.2 之后加入的新特性,如果不设置为no,则无法进行主从复制
protected-mode no
3.两个Slave的配置文件需要修改以下几个地方
Slave1
daemonize yes
#bind 127.0.0.1
#这条配置原始的redis配置文件中没有,需要添加。slaveof master地址 master端口号
slaveof 192.168.25.140 6379
#Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
pidfile /var/run/redis_6380.pid
port 6380
#日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
logfile "6380.log"
#指定本地数据库文件名,默认值为dump.rdb
dbfilename dump6380.rdb
Slave2
daemonize yes
#bind 127.0.0.1
slaveof 192.</