redis结构:
1:一主一从
2:一主多从
3:主从从
主从复制工作原理
--slave向master发送sync命令
--master启动后台存盘进程,并收集所有修改数据命令
--master完成后台存盘后,传送整合数据文件到slave
--slave接受数据文件,加载到内存中完成首次完全同步
--后续有新数据产生时,master继续收集数据修改命令依次传给slave,完成同步
一主一从结构配置:
相关命令:
#默认都是master角色
查看当前主机的角色 info replication
命令行配置 好处 马上生效 slaveof 主服务器Ip 服务端口
永久配置 vim /etc/redis/6379.conf
slaveof 主服务器Ip 服务端口
masterauth 密码 #如果主服务器有连接密码要指定连接密码
#反客为主 (临时恢复为master 服务器)
> slaveof no one
永久恢复为独立的服务器
注释文件中的 slaveof 主服务器Ip 服务端口 然后把服务重启
实验:把52配置为 51 的 slave
52主机做如下配置:
#命令行配置
> slaveof 192.168.4.51 6379
#查看角色
192.168.4.52:6379> info replication
# Replication
role:slave
master_host:192.168.4.51
master_port:6379
master_link_status:up
# 永久配置
[root@host52 ~]# vim /etc/redis/6379.conf
282 slaveof 192.168.4.51 6379
:wq
#在51主机查看复制信息
192.168.4.51:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.4.52,port=6379,state=online,offset=261,lag=0
一主多从:
把主机53 也配置为 51的slave 通过修改文件配置
[root@host53 ~]# vim /etc/redis/6379.conf
282 slaveof 192.168.4.51 6379
:wq
[root@host53 ~]#redis-cli -h 192.168.4.53 shutdown
[root@host53 ~]# /etc/init.d/redis_6379 start
实验3 :主从从结构
把54 配置为 53的slave 主机
在54主机做如下配置:
#在命令行指定 且让他永久生效
>slaveof 192.168.4.53 6379
>config rewrite #把命令保存到文件的最后1行
]#tail -1 /etc/redis/6379.conf
1.2 带验证的主从复制
(master服务器设置了连接密码 slave主机必须指定连接密码才能同步数据)
在51主机设置连接密码 (在命令行并让其永久有效)
192.168.4.51:6379> config set requirepass 123456
192.168.4.51:6379> auth 123456
192.168.4.51:6379> config rewrite
OK
在slave设置连接master主机的密码 (在命令行并让其永久有效)
[root@host52 ~]# redis-cli -h 192.168.4.52
192.168.4.52:6379> config get masterauth
1) "masterauth"
2) ""
192.168.4.52:6379> config set masterauth 123456
OK
192.168.4.52:6379> config get masterauth
1) "masterauth"
2) "123456"
192.168.4.52:6379> config rewrite
OK
53主机通过修改配置文件
393 redis-cli -h 192.168.4.53 shutdown
]#vim /etc/redis/6379.conf
masterauth 123456
:wq
]# /etc/init.d/redis_6379 start
]# /etc/init.d/redis_6379 start
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!