请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Redis主从同步相关课程问题

主从复制如何增量同步:
我搭建了 一主两从,都开启了AOF;然后检查数据都是成功同步 ;
1.我先将从节点关闭,在主节点上添加key;
2.然后我 在启动从 节点,从节点还是会进行全量同步;通过 观察master日志

怎么才能实现增量呢,我模拟的例子不对吗,还请老师 指点

14969:M 23 Jun 2021 10:45:46.165 * Replica 172.16.1.43:6379 asks for synchronization
14969:M 23 Jun 2021 10:45:46.165 * Full resync requested by replica 172.16.1.43:6379
14969:M 23 Jun 2021 10:45:46.165 * Starting BGSAVE for SYNC with target: disk
14969:M 23 Jun 2021 10:45:46.167 * Background saving started by pid 16996
16996:C 23 Jun 2021 10:45:46.171 * DB saved on disk
16996:C 23 Jun 2021 10:45:46.171 * RDB: 4 MB of memory used by copy-on-write
14969:M 23 Jun 2021 10:45:46.192 * Background saving terminated with success
14969:M 23 Jun 2021 10:45:46.193 * Synchronization with replica 172.16.1.43:6379 succeeded

主从数据脏读
老师视频说可以强制读主节点数据,那我 的应用都连接好了,怎么做到强制读主,这个如何配置?

数据安全?
老师你说主节点不开启备份,然后内存保存数据,然后主重启数据丢失,然后同步给从,从也没了;
按照如上的说法,我们在从上面 开启 rdb和 aof,也会出现被覆盖的情况,如果master不开持久化,slave开启,出现 故障,怎么做才能保证 数据不会被覆盖呢;

规避复制风暴?
选举slave为主节点,那master的id会发生变化,slave是不是通过 offset偏移量来判断是否需要全量(假设slave有master数据,那么就采用增量,这么理解对吗);

树状架构:这个树状架构规避复制风暴,是一开始就这么来搭建,还是说,出问额了才弄成 这种结构,那弄成了 master<-slave1<-slave2(这种模式),slave1和slave2都是只读的吗,那怎么在这种架构下 ,是不是采用 slave2开启持久化即可;其他节点 可不开启;

正在回答 回答被采纳积分+3

1回答

InCowboy 2021-06-29 09:10:24

1、增量同步的大前提是master的run id和slave的run id要保证一致才行,你重启了slave以后,那么slave的runid会发生改变,这样重启后肯定是全量同步的,增量同步你只需要观察主从数据同步完以后,在往master写入数据时,这时同步到slave就会发生增量同步的。
2、强制读取master数据,可以从应用层面去实现,比如在Java中你获取的Redis实例都是主节点的实例就可以。

3、这时性能和安全的权重问题,主节点不持久化,性能是提高了,但会出现同步空数据的安全问题,因此实际工作中是需要权衡的。关闭主节点这里只是讲述一种优化的方式

4、slave有master的数据不一定就是增量复制,主要是看master和slave的run id是否一致,个人建议不要一开始就搭树状结构,如果能够预估到流量的话最多也就搭建集群(搭建集群也是规避复制风暴的一种方式),甚至有的公司一开始都是从单台Redis开始,逐步根据产品流量进行扩展,节点增多管理成本高。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信