Redis学习笔记--主从复制
主从复制可以用来备份存储数据到另一个redis库中.也可以用来做读写分离操作.更具自己设计的策略进行主从关系的配置实现不同的主从关系.关系master/slaver关系.也因为该关系以及文件配置项可以实现读写分离.master主要负责写.slaver主要负责读.
两个常用命令.
1.用于指定配置主从关系.slaveof +host +port.为当前操作的redis设置master.....host和port指的是主人redis的地址和端口.
2.info replication.这个指令用于查看当前redis的角色(master/slaver).
3.slaveof noone看名字就是么有master.
ps:主从复制.至少两个或以上.这里设A(6379) B(6380) C(6391) 三个redis库......需要在配置文件内部配置不同的端口
配置文件中的NetWork项中配置端口port项.这里配置的是6379默认的端口.可以对其修改进行配置不同的redis.
.
3.几种不同的配置方式
Ps:几个要点.在对数据备份方面.随从备机Slaver会吧主机Master的所有数据(执行主从复制命令前后主机的数据)~全部~都
备份到备机中!
备机Slaver默认配置为只读模式.
执行操作的时候.BC会同步数据到BC的存储文件中.dump.rdb/appendonly.aof文件中.(ps:为了区分.也需要分别在ABC三
个Redis配置文件中配置对应的持久化文件名字)
1.1个master和两个slaver:假设我们设置A为Master.BC同时执行SalveOf A.host A.port...BC就成为了A的随从.既A的备机.
B slaveof A. C slavrof A.
注意点:而当A:master-redis停止工作如shutdown后.BC依旧会保持slaver角色.并且BC其中一个停止工作.互不影响备份工作
而停止工作(断开..)该断开的slaver就会变回master.
2.也可以一个接一个.类似马老师的一字长蛇打野(哈哈).......既 B slaveof A. C slavrof B.
注意点:A:master-redis停止工作如shutdown后. BC依旧slaver....A不死B死C不死.中间的断开了.也就执行不了BC的持久化
3.哨兵模式!!这个比较好.重点一点.大概意思是.在第一种模式之下.当A停止工作了.可以通过后台监控master是否停止.如果停止.
就根据剩下的两个从机进行投票选取.选取一个(B/C)当作master继续工作.避免两个slaver导致的都不能写的问题.
1.需要配置sentinel.conf文件.其中可以这样配置.即监控我们原master主机的名字.host.port.将其设置为1.当我们的master
机停止工作了.会根据剩余两个slaver的票数决定谁成为master
当配置好之后.可以通过redis文件中的redis-sentinel 来执行sentinel配置文件.启动我们的哨兵模式(reids-sentinel sentinel.conf)
启动.
注意点:当原本死掉的Master机恢复工作.他的角色就不是master了.会变成slaver.需要修改课对redis.conf文件中的项进行修改
查看的时候会发现!多了一个神头鬼脸的项:就是(slaveof 新maset.host 新master.port) 这样一个东西.还有删除sentinel文件就可以破坏哨兵模式.