1、搭建
新建文件夹:Master、Slave_01、Slave_02。其中Slave_01作为Master的Slave,Slave_02作为Slave_01的Slave。
Master redis.conf配置:
port 6000
requirepass 123456
Slave_01 redis.conf配置:
port 6001
slaveof 127.0.0.1 6000
masterauth 123456
slave-read-only no
requirepass 123456
Slave_02 redis.conf配置:
port 6002
slaveof 127.0.0.1 6001
masterauth 123456
slave-read-only no
requirepass 123456
依次启动3个服务:
redis-server redis.conf
2、查看主从同步信息
命令:info replication
Master:
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6001,state=online,offset=2330,lag=1
master_repl_offset:2330
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:2329
Slave_01:
role:slave
master_host:127.0.0.1
master_port:6000
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:2344
slave_priority:100
slave_read_only:0
connected_slaves:1
slave0:ip=127.0.0.1,port=6003,state=online,offset=2334,lag=0
master_repl_offset:2334
repl_backlog_active:1
repl_backlog_size:1048576
Slave_02:
role:slave
master_host:127.0.0.1
master_port:6001
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:2348
slave_priority:100
slave_read_only:0
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
3、主从同步验证
1)
Master:
redis-cli -h 127.0.0.1 -p 6000
127.0.0.1:6000> auth 123456
OK
127.0.0.1:6000> set database redis
OK
Slave_01:
redis-cli -h 127.0.0.1 -p 6001
127.0.0.1:6001> auth 123456
OK
127.0.0.1:6001> get database
“redis”
Slave_01:
redis-cli -h 127.0.0.1 -p 6002
127.0.0.1:6002> auth 123456
OK
127.0.0.1:6002> get database
“redis”
可以看到,Master 执行写命令,Slave_01/Slave_02实现了主从同步。
2)
Slave_01:
127.0.0.1:6001> set sex male
OK
Master:
127.0.0.1:6000> get sex
(nil)
Slave_02:
127.0.0.1:6003> get sex
“male”
可以看到:Slave_01执行了写命令,Slave_02实现了主从同步,而Master却没有,说明:Master数据可以同步至Slave,而Slave却不能将数据同步至Slave。