继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

突破Java面试(23 - 3) - Redis replication以及master持久化对主从架构的安全意义

JavaEdge
关注TA
已关注
手记 394
粉丝 1.4万
获赞 1475

redis replication -> 主从架构 -> 读写分离 -> 水平扩容支撑读高并发

1 图解redis replication基本原理

2 Redis replication的核心机制

  • Redis采用异步方式复制数据到slave节点,不过redis 2.8开始,slave node会周期性确认自己每次复制的数据量
  • 一个master node可以配置多个slave node
  • slave node也可以连接其他的slave node
  • slave node做复制时,不会block master node的正常工作
  • slave node在复制时,也不会block对自己的查询操作,它会用旧的数据集来提供服务;但是复制完成时,需删除旧数据集,加载新数据集,此时就会暂停对外服务!
  • slave node主要用来进行横向扩容,做读写分离,扩容的slave node可以提高读的吞吐量

3 master持久化对于主从架构的安全保障的意义

3.1 开启master node的持久化

若采用了主从架构,那么建议你务必开启master node的持久化!

不建议用slave node作为master node的数据热备,因为如果你关掉master的持久化,可能在master宕机重启时数据是空的,然后可能一经过复制,salve node数据也丢了

master => RDB和AOF都关闭了 => 全部在内存中

master宕机重启,是没有本地数据可恢复的,然后就会直接认为自己的数据为空,master就会将空的数据集同步至slave,所有slave的数据全部清空,数据完全丢失!所以master节点,必须要使用持久化机制

3.2 master的各种备份方案

万一本地的所有文件丢失了,从备份中挑选一份rdb去恢复master,这样才能确保master启动时,是有数据的.

即使采用了后续的高可用机制,slave node可以自动接管master node,但也可能sentinal还没有检测到master failure,master node就自动重启了,还是可能导致上面的所有slave node数据清空故障

参考

《Java工程师面试突击第1季-中华石杉老师》

更多干货请关注JavaEdge公众号

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP