一、Redis主从复制架构的介绍
## 基本介绍
01:一个主可以有多个从(一主多从);从库下可以有多个从(级联式主从); 02:Redis主从复制时是使用异步复制(主不管slave有没有接收到数据); 03:复制时不会阻塞主服务器响应客户端的请求,因为在进行数据同步时, 主上面执行bgsave命令for出一个子进程来进行数据的同步操作; 04:在复制时可能会影响slave端redis的主进程对客户端的响应;在2.8版本 以后,slave默认是只读的哈? 例如:主从复制架构,写是在master端进行,你通过手段做了读写分离, 让客户端在slave中进行读的操作,此时slave在同步(不管全同步,还是 增量同步)master端的数据时会不会阻塞客户端的读取操作呢? 解答:这个其实是由参数slave-serve-stale-data控制的,它有两个值, yes和no;yes表示仍然响应,可能数据不是最新的;默认就是yes;no表示 不响应,给客户端报"SYNC with master in progress"错误; 05:主从复制架构中,Master端需要开启持久化嘛?这个得根据需求: A:对数据没有持久化的需求,Master和slave都可以不开启的; B:对数据有持久化的需求,Master端不开启,slave端开启,这样会有危险的哈? 因为一但master端重启后,master端是没有数据的,同时也会销毁slave端之前 的持久化数据;
## 为什么要用主从复制
01:在对数据有持久化需求的情况下: A:对master上的数据做一份数据副本,相当于逻辑上的异地数据灾备; B:可以结合高可用软件(开源的keepalived或redis自带的sentinel)做高可用; 02:在对数据没有持久化需求的情况下: 可以结合高可用软件(开源的keepalived和redis自带的sentinel)做高可用;
二、主从复制的原理
原文地址:https://www.cnblogs.com/chenliangc/p/12340016.html
时间: 2024-10-25 22:47:48