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