redis 主从复制
资料:
https://blog.csdn.net/qq_52143183/article/details/127710841
https://blog.csdn.net/javadocdoc/article/details/109402960
1、redis 内存数据库,KV数据库(memcached)数据结构数据库。数据结构有:string,list,set,zset,hash,srteam。
一致性:
(a)强一致性(一直一致) (b)最终一致性(最终一致)
redis采用的是最终一致性。
2、redis 三种集群方式:
(a)主从复制 (b)哨兵模式 (c)cluster集群
3、解决哪些问题:
(a)解决单点故障的问题;
(b)高可用的基础。CAP原则。C:一致性,A:可用性,P:分区容错性
CAP原则:不能同时满足,保二弃一。一般都需要满足P原则。所以一般强可用时,采用最终一致性(软一致性)。
4、主从复制的应用 有哪些?
(a)读写分离。( 异步事件机制、单线程(网络事件处理+业务),如果对于一致性要求不高的场景,可以采用读写分离的场景)
(b)master 设置不持久化、slave设置持久化。 1、时间事件(定时器) 2、dict(数组+hash) 扩容和缩容 size > used会影响dict 索引效率。
(c)从数据库 基础上设置 从节点;用于线上数据测试,不会影响主从数据一致;
5、原理:
(1)提供了两种同步的方式
a、全同步
b、增量同步
(2)两种持久化方法:
a、rdb:将一段时间内数据,压缩为一个文件,可能会丢失(同步时间间隔)数据。
b、aof:以操作为单位,进行存储。丢失的事一个写/删除等操作。
6、redis主从复制的版本迭代:
(1)分析需求:
a、新加入节点
b、主从连接故障
c、从数据库重启
d、主从切换
(2)版本迭代
a、< 2.8 版本之前的版本采用 全量同步方式。不考虑效率时,这是正确的做法。场景a、c。
b、2.8版本增量同步方式:
方法:a、缓冲区(size) b、偏移量(指明缓冲区的位置) c、runid 目的:限定一个短时间内数据同步的方式。场景b。
c、4.0版本:缓冲区+偏移量+runid 写入rdb中。 场景 d。
7、开发项目时启示:简单可用,逐步优化。
a、先关注核心功能开发,数据结构数据库(空间和时间复杂度)
b、逐步优化。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通