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

[经验分享] Redis(四):持久化之---RDB持久化的配置和原理

[复制链接]

尚未签到

发表于 2018-11-5 08:05:03 | 显示全部楼层 |阅读模式
  配置过程
  默认快照方式是开启的,Redis会根据快照保存策略把快照写入到dump.rdb(默认名称)文件中,该文件保存位置可以在配置文件中设置,就是dir配置项。
  默认保存策略如下:
DSC0000.jpg

  命令行有一个save或者gbsave命令,作用是把数据同步到dump.rdb中,不过这两个命令的是有区别的,在原理部分会谈到。
DSC0001.jpg

  原理
  RDB持久化可手动运行也可以自动定期执行,然后把某个时间点的数据库状态保存到RDB文件中,默认是dump.rdb,该文件是一个经过压缩的二进制文件,上面已经说了如何去配置策略和使用命令。下面来说一下save和gbsave的区别。
  SAVE命令运行后会阻塞Redis服务器进程,直到RDB文件创建完毕,在阻塞过程过程中服务器不处理任何来自外界的请求无论读还是写(阻塞所有请求)。
  BGSAVE命令与SAVE不同,该命令会产生一个子进程,由此子进程来处理创建RDB文件任务,而服务器的父进程继续响应外部请求。
  BGSAVE在执行过程中不会阻塞请求,但是并不是说任何请求都可以被执行,在服务器执行BGSAVE期间,对于执行SAVE、BGSAVE和BGREWRITEAOF这三个命令会有所有不同。
在BGSAVE执行期间:执行SAVE命令会被服务器拒绝,服务器禁止SAVE命令和BGSAVE同时执行,因为不可能让两个命令去调用同一函数然后去操作同一个RDB文件执行BGSAVE命令会被服务器拒绝,因为已经有一个在进行了,没必要再允许一个执行BGREWRITEAOF命令会被延迟执行,BGSAVE子进程完成后,才会执行BGREWRITEAOF命令在BGREWRITEAOF执行期间:执行BGSAVE命令会被拒绝,这两个命令没有冲突的地方,只是同时执行会产生大量磁盘写操作,会影响性能,所以这是一个规则上的拒绝,不是一个技术上的拒绝  上面提到了保存策略,那么这个保存策略是如何被执行的呢?
  简单来说就是三个内容,条件、计数器与上次保存时间、检查器。检查器周期性(默认100毫秒)检测计数器与上次保存时间是否满足条件组合之一(save900  1、save 300   10、save 6010000),是则执行BGSAVE。
  计数器dirty:用于记录修改次数;上次保存时间lastsave:用于保存上次保存的时间。
  注意:Redis模式会运行16个数据库(编号为0---15),在执行保存的过程中无论是SAVE触发还是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-630859-1-1.html 上篇帖子: CentOS 7安装配置Redis数据库 下篇帖子: Redis(五):关于过期键(1)过期键的设置、获取和删除过期时间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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