设为首页 收藏本站
查看: 769|回复: 0

[经验分享] redis持久化和复制原理

[复制链接]

尚未签到

发表于 2018-11-3 15:17:22 | 显示全部楼层 |阅读模式
  Redis提供了两种不同的持久化方式:
  RDB:在指定的时间间隔内生成数据快照,以二进制进行存储
  AOF:记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集新命令会被追加到文件的末尾,每隔一段时间在后台对AOF文件进行重写使AOF文件的体积不会超出保存数据所需实际大小
  Redis还可以同时使用AOF和RDB,在这种情况下,当Redis重启后,它会优先使用AOF文进行数据还原,因为AOF文件保存的数据通常比RDB保存的数据更完整,通常AOF和RDB协同工作,在一定程度上弥补了他们的缺点
  RDB的优缺点:
  优点:
  1、文件紧凑,它保存了Redis在某个时间点上的数据集,非常适合用于进行备份2、可以最大化Redis的性能,父进程在保存RDB文件时唯一要做的就是fork出一个子进程,然后这个子进程就会处理接下来的所有持久化工作,父进程无须执行任何磁盘 I/O 操作
  3、在恢复数据量比较大时速度比AOF的恢复速度快
  缺点:
  1、无法实时备份,在服务器出现故障时可能会丢失部分数据
  2、由于使用子进程进行数据持久化,当数据比较大的时候可能会占用比较多的cpu资源
  3、每一次都是完整备份,而无法实现增量备份
  AOF的优缺点:
  优点:
  1、实时的记录了redis的写操作,在服务器出现故障时基本不会造成数据丢失
  2、在AOF文件体积过大时,自动地在后台对AOF进行重写,重写后的AOF文件包含了恢复数据所需的最小命令集
  3、AOF以Redis协议的格式进行保存,可读性好,对文件进行分析也很轻松
  缺点:
  1、AOF文件的体积通常要大于RDB文件的体积
  2、AOF的恢复速度通常慢于RDB
  AOF文件的重写过程:
  AOF文件体积在达到一定程度时会在后台启动AOF文件重写功能通过fork打开一个子进程,这个进程器读取整个redis的数据内容,将他生成一个新的AOF文件,在AOF文件重写是产生的写操作记录两份,一份直接写入的旧的AOF文件中,一份放入缓存区,当AOF文件重写完成之后替换掉旧的AOF文件并将缓存区的写操作追加到新的AOF文件中
  复制特点:
  1、Redis使用异步非阻塞进行复制
  2、一主可以有多从,从服务器也可以有从服务器
  3、可以通过复制让主服务器免于不用持久化,由从服务器去执行持久化操作(不建议这么使用)
  复制过程:
  1、slave向主服务器发起同步请求
  2、master执行bgsave生成镜像文件,在这个过程中产生的新数据会存入缓存区,当bgsave执行完毕后生成一个.rbd文件,master将.rbd文件和缓存区的数据发送给slave,slave收到master的数据后将这些数据存入本地硬盘,slave从本地硬盘中载入数据到内存
  3、即使有多个slave同时向主服务器发送同步请求,master也只需执行一次bgsave


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-630360-1-1.html 上篇帖子: redis配置详解 下篇帖子: JEESZ 分布式架构--dubbo+zookeeper+springmvc+mybatis+shiro+redis
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表