当前位置:  开发笔记 > 后端 > 正文

详解Redis中的主从复制架构

本篇文章带大家了解一下Redis中的主从复制架构。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
本篇文章带大家了解一下Redis中的主从复制架构。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

4. 主从应用问题

4.1 读写分离的问题

数据过期问题

65 哥:主从复制的场景下,从节点会删除过期数据么?

这个问题问得好,为了主从节点的数据一致性,从节点不会主动删除数据。我们知道 Redis 有两种删除策略:

  • 惰性删除:当客户端查询对应的数据时,Redis 判断该数据是否过期,过期则删除。

  • 定期删除:Redis 通过定时任务删除过期数据。

65 哥:那客户端通过从节点读取数据会不会读取到过期数据?

Redis 3.2 开始,通过从节点读取数据时,先判断数据是否已过期。如果过期则不返回客户端,并且删除数据。

4.2 单机内存大小限制

如果 Redis 单机内存达到 10GB,一个从节点的同步时间在几分钟的级别;如果从节点较多,恢复的速度会更慢。如果系统的读负载很高,而这段时间从节点无法提供服务,会对系统造成很大的压力。

如果数据量过大,全量复制阶段主节点 fork + 保存 RDB 文件耗时过大,从节点长时间接收不到数据触发超时,主从节点的数据同步同样可能陷入全量复制->超时导致复制中断->重连->全量复制->超时导致复制中断……的循环。

此外,主节点单机内存除了绝对量不能太大,其占用主机内存的比例也不应过大:最好只使用 50% - 65% 的内存,留下 30%-45% 的内存用于执行 bgsave 命令和创建复制缓冲区等。

总结

  • 主从复制的作用:AOF 和 RDB 二进制文件保证了宕机快速恢复数据,尽可能的防止丢失数据。但是宕机后依然无法提供服务,所以便演化出主从架构、读写分离。

  • 主从复制原理:连接建立阶段、数据同步阶段、命令传播阶段;数据同步阶段又分为 全量复制和部分复制;命令传播阶段主从节点之间有 PING 和 REPLCONF ACK 命令互相进行心跳检测。

  • 主从复制虽然解决或缓解了数据冗余、故障恢复、读负载均衡等问题,但其缺陷仍很明显:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制;这些问题的解决,需要哨兵和集群的帮助,我将在后面的文章中介绍,欢迎关注。

65 哥:码哥你的图画的真好看,内容好,跟着你的文章我收获了很多,我要收藏、点赞、在看和分享。让更多的优秀开发者看到共同进步!

更多编程相关知识,请访问:编程视频!!

以上就是详解Redis中的主从复制架构的详细内容,更多请关注其它相关文章!

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有