Redis 主从复制

什么是主从复制?

有多个redis实例,其中一个为master, 其它的为salve, master既可以读又可以写, master的数据也会写入slave库中,但salve则只能读不能写.

评价复制的原理是什么?

1. 从服务器向主服务器发送 SYNC 命令。

2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下来执行的所有写命令。

3. 当主服务器执行完 BGSAVE 命令时,它会向从服务器发送 RDB 文件,而从服务器则会接收并载入这个文件。

4. 主服务器将缓冲区储存的所有写命令发送给从服务器执行。

可以看到,最开始同步时需要通过RDB模式复制原有的数据库,而后面的则是通过AOF模式.

 

主从复制有什么好处?

高可用,因为redis是保存在数据库中,通过主从复制,保证数据库高可用

master.conf

port 6380

daemonize yes

pidfile /data/6380/redis.pid

loglevel notice

logfile "/data/6380/redis.log"

dbfilename dump.rdb

dir /data/6380

protected-mode no

slave1.conf

port 6381

daemonize yes

pidfile /data/6381/redis.pid

loglevel notice

logfile "/data/6381/redis.log"

dbfilename dump.rdb

dir /data/6381

protected-mode no

slave2.conf

port 6382

daemonize yes

pidfile /data/6382/redis.pid

loglevel notice

logfile "/data/6382/redis.log"

dbfilename dump.rdb

dir /data/6382

protected-mode no

启动三个实例:

redis-server master.conf

redis-server slave1.conf

redis-server slave2.conf

设置主从

redis-cli -p 6381

SLAVEOF 127.0.0.1 6380  #指明主的地址

 

redis-cli -p 6382

SLAVEOF 127.0.0.1 6380  #指明主的地址

检查主从的状态

127.0.0.1:6380> info replication

127.0.0.1:6381> info replication

127.0.0.1:6382> info replication

当主库意外挂掉要怎么切换?

 

 

 

 

 

上一篇:Redis持久化

下一篇:Redis sentinel