第十七章《redis主从复制》

第十七章《redis主从复制》

redis主从复制:
1.配置:
master:修改:bind 0.0.0.0
想设置密码:requirepass
slave:
(1)修改配置文件:slaveof
(2)启动从节点server的时候:redis-server redis.conf –slaveof masterip masterport
(3)直接在客户端命令执行:slaveof masterip msterport
如果主节点设密码了:masterauth
2.主从复制原理:
主从第一-次连接进行全量复制,从节点发送复制请求给主节点,主节点受到请求进行rdb持久化
然后把rdb文件传送给从节点。从节点接收到rdb文件后清空旧数据,然后将rdb文件加载到内
存中。之后主节点数据的更新会同步到从节点。主从复制是异步的。

psync:当从节点由于故障断开和主节点的连接,如果每次恢复连接后对主节点进行全量复制会给主节点造成性能力和带宽浪费。使用psync可以实现部分复制:从节点在每次完成数据同步后都会保存一个数据的复制偏移量,然后从节点通过psync命令将定期将主节点的运行id和复制偏移量发送给主节点。主节点先验证运行id,根据复制偏移量来判断需要部分复制的数据,然后将这部分数据传送给从节点。
psync [runid] [offset]

runid:主节点每次启动都会生成一个16进制的id,从节点连接主节点后会保存这个runid
offset:当前从节点已复制的数据偏移量;

复制积压缓存区(环形队列)repl-backlog:主节点在内存当中维护的一个环形的队列,每次执行写命令后主节点都会将命令发送给他,从节点发送的offset在复制积压缓存区内,就把缓存区内的数据发送给从节点完成部分复制,复制积压缓存区的大小默认1M,我们通过设置repl-backlog-size可以调整他的大小,如果从节点的offset已经不在缓存区内,那就只能进行全量复制

master重启了,他的runid会发生变化,或发生从节点维护的runid和主节点不一致,所以此时也会进行全量复制

断开主从复制:slaveof命令不但可以建立复制,还可以在从节点执行slaveof no one 断开从节点的复制链接,断开后我们从节点上已经复制的数据不会丢失

slaveof命令还可以实现切换主节点。
slaveof 新主节点的ip 新主节点的port
实现流程:
1.断开与旧主的复制关系
2.与新主建立关系
3.删除从节点的所有数据
4.对新主节点进行复制

只读:建立主从复制关系后,从节点默认设置是只读:slave-read-only=yes,为了保证主从数据的一致性

传输延迟:repl-disable-tcp-nodelay 参数用来控制是否关闭tcp_nodelay,默认关闭;
(1)当关闭时,主节点产生的命令数据无论大小都会及时的发送给从节点,这样主从之间的延时会变小,但是增加了网络带宽的消耗,适用于主从主键的网络环境良好的场景,同机架或同机房
(2)开启时,主节点会合并较小的tcp数据包从而节省带宽,默认发送时间间隔取决于linux的内核,一般默认40毫秒,适用于主从网络环境复杂或带宽紧张的场景。

主从复制的结构:
(1)一主一从
(2)一主多从
(3)树状主从结构

心跳:
主从节点连接后,他们之间维护着长连接并彼此发送心跳命令;
client list:可以查看客户端信息
(1)主节点默认每10 秒给从发送ping命令,判断从节点的存活性和连接状态,可以通过
repl-ping-slave-period 10设置多少秒发送ping命令
(2)从节点在主线程每隔1秒发送replconf ack [offset]给主节点上报自身当前的复制偏移量

1.读写分离:
(1)复制数据延迟
(2)读到过期数据
(3)从节点故障
2.主从配置不一致:
maxmemory,hash-max-ziplist-entries等参数配置不一致
3.避免全量复制:配置自动故障转移方案;
4.避免复制风暴:
(1)大量的从节点连接一个主节点,容易出现复制风暴,对单节点的复制风暴
(2)单主机的复制风暴,多台主节点部署在同一服务器上。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101961.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • idea激活码2021.10_最新在线免费激活「建议收藏」

    (idea激活码2021.10)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

  • java标识符有哪些_java标识符有哪些?java标识符有哪些不合法?

    java标识符有哪些_java标识符有哪些?java标识符有哪些不合法?问题:下面哪个标识符是合法的?”1HelloWorld””_HelloWorld””Hello*World””Hello$World”答案:4解析:标识符是以字母开头的字母数字序列:数字是指0~9,字母指大小写英文字母、下划线(_)和美元符号($),也可以是Unicode字符集中的字符,如汉字;字母、数字等字符的任意组合,不能包含+、-*等字符;不能使用关键字;大小写敏感拓展:1、java标识…

  • 初探js逆向「建议收藏」

    初探js逆向「建议收藏」转载自三尾先生博客初探js逆向在开始之前想先说下阅读完三尾先生这篇文章的一点个人理解,文章写得挺好的,很值得新手学习了解,首先谈下逆向激活成功教程思路1.需要逆向的时候一般是遇到了加密问题,加密情况有参数加密,有结果加密。但不管怎样的加密只要页面能正常显示,那就有解密过程!2.先找到加密的字段名,通过字段名在sources全局搜索3.在含有这些字段的位置打断点,一般sources里看到的会是一行的压缩代码,我们可以通过点击左下角的双大括号格式化js代码然后通过断点一步步查看参数在哪一步骤发生了变

  • 线段树入门 敌兵布阵

    线段树入门 敌兵布阵

  • A4988驱动42步进电机

    A4988驱动42步进电机A4988步进电机驱动器驱动控制42步进电机速度,步进电机调速,调节驱动电流1A4988步进电机驱动器简介方便使用,是我们这些用户最想要的,固有的名词和深入介绍在这就不多说了,您可以百度,或这下载附件,芯片手册中有详细的…

  • WebService简单案例实例

    WebService简单案例实例本周工作日即将结束,下周项目经理安排了一项任务可能需要使用到webservice,但本人之前尚未使用过,网上查了一些案例看了看在此小记一篇留作日后回首也希望可以帮助到查看者朋友1、什么是WebService?WebService是一种远程调用技术,也叫XMLWebServiceWebService,是一种可以接收从Internet或者Internet上的其他系统中传递过来的请求,轻量级的独…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号