Redis---B站学习---redis的主从复制
程序员文章站
2022-03-14 18:13:13
Redis—B站学习—redis的主从复制1.Redis的主从复制是什么行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主2.Redis的主从复制能做什么读写分离容灾恢复3.Redis的主从复制怎么使用配从(库)不配主(库)从库配置:slaveof 主库IP 主库端口每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件info replication...
Redis—B站学习—redis的主从复制
1.Redis的主从复制是什么
- 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的
master/slaver
机制,Master
以写为主,Slave
以读为主
2.Redis的主从复制能做什么
- 读写分离
- 容灾恢复
3.Redis的主从复制怎么使用
- 配从(库)不配主(库)
-
从库配置:slaveof 主库IP 主库端口
- 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
- info replication
-
修改配置文件细节操作
- 拷贝多个redis.conf文件
- 开启daemonize yes
- pid文件名字
- 指定端口
- log文件名字
- dump.rdb名字
-
常用3招
-
一主二仆 (比较常用)
Init
一个Master两个Slave
-
日志查看
-
主机日志
:查看对应服务的以.log
结尾的文件(下图是log文件的内容)
-
备机日志
:查看对应服务的以.log
结尾的文件(log文件内容同上)
-
info replication
:查看主/从复制信息(slaveof + host+ post)
-
-
主从问题演示
-
切入点问题?
slave1、slave2是从头开始复制还是从切入点开始复制?比如从k4进来,那之前的123是否也可以复制?
答:如果设置了从机,那么从机就会抓取到主机的所有信息,无论是在成为从机前还是后的数据都可以获取到 -
从机是否可以写?set可否?
答:只有主机可以写可以进行set
操作,从机是不可以进行写set
操作的 -
主机shutdown后情况如何?从机是上位还是原地待命?
答:从机原地不动还是slave
状态,但master_link_status
状态由up
变成down
了 -
主机又回来了后,主机新增记录,从机还能否顺利复制?
答:从机可以顺利复制 -
其中一台从机down后情况如何?依照原有它能跟上大部队吗?
答:从机如果跟master
断开后,自己会变成master
。之前的主机新添加的数据,这个断开的从机没有,如果想要跟上原来的大部队,那么就要重新成为从机
-
-
薪火相传
(类似链表的结构)
- 上一个Slave可以是下一个slave的Master,Slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻master的写压力
-
中途变更转向
:会清除之前的数据,重新建立拷贝最新的 - slaveof 新主库IP 新主库端口
-
反客为主
- SLAVEOF no one:使当前数据库停止与其他数据库的同步,转成主数据库
-
4.复制原理
- slave启动成功连接到master后会发送一个sync命令
- Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步
- 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
- 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步
- 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行
5.哨兵模式(sentinel)—监控,也是反客为主的自动版
-
哨兵模式是什么
- 反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库
-
哨兵模式怎么用(使用步骤)
- 调整结构,6379带着80、81
- 自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错
-
配置哨兵,填写内容
- sentinel monitor
被监控数据库名字(自己起名字)
127.0.0.1 6379 1 - 上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机
- sentinel monitor
-
启动哨兵
- redis-sentinel /sentinel.conf的路径/sentinel.conf
- 上述目录依照各自的实际情况配置,可能目录不同
- 正常主从演示
-
原有的master挂了
:由于启动哨兵模式,当原有的master
再重新连接上来之后过一小会儿会有master
状态变为slave
状态 - 投票新选
- 重新主从继续开工,info replication查查看
-
问题
:如果之前的master重启回来,会不会双master冲突?
答: 不会,原有的master
过了一小会儿就会变成slave
- 一组sentinel能同时监控多个Master
6.复制的缺点
- 由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。
本文地址:https://blog.csdn.net/qq_39314972/article/details/107308802