redis RDB持久化

RDB文件的创建与载入

有两个命令可以用于生成RDB文件,一个是SAVE,另一个是BGSAVE。
SAVE命令会阻塞redis服务器进程,直到RDB文件创建完毕为止。
BGSAVE会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程继续处理命令请求。

自动间隔性保存

用户可以在指定配置文件或者传入启动参数的方式设置save选项,如果没有主动设置,则默认为:
save 900 1 -- 900秒内对数据库有一次改动。
save 300 10 -- 300秒内对数据库有10次改动。
save 60 10000 -- 60秒内对数据有有10000次改动。

dirty计数器和lastsave属性

dirty计数器记录距离上一次成功执行SAVE命令或者BGSAVE命令之后,服务器对数据库状态进行了多次修改(写入、删除、更新等)
lastsave属性是一个UNIX时间戳,记录了服务器上一次成功执行SAVE命令或者BGSAVE命令的时间。

总结:

RDB文件用于保存和还原redis服务器所有数据库中的所有键值对数据。
SAVE命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器。
BGSAVE由子进程执行保存操作,所以该命令不会阻塞服务器。
服务器状态中会保存所有用save选项设置的保存条件,当任意一个保存条件被满足时,服务器会自动执行BGSAVE命令。
RDB文件是一个经过压缩的二进制文件,由多个部分组成。
对于不同类型的键值对,RDB会使用不同的方式来保存它们。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 在上一篇文章中,介绍了Redis内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复...
    Java架构阅读 7,017评论 3 21
  • 企业级redis集群架构的特点 海量数据 高并发 高可用 要达到高可用,持久化是不可减少的,持久化主要是做灾难恢复...
    lucode阅读 6,551评论 0 7
  • RDB持久化 Redis是内存数据库,数据库状态都在内存里边,需要RDB持久化功能将内存中的数据库状态保存到磁盘里...
    涵仔睡觉阅读 2,444评论 0 1
  • 简介 Redis 持久化 RDB、AOF 为防止数据丢失,需要将 Redis 中的数据从内存中 dump 到磁盘,...
    翼徳阅读 3,089评论 0 0
  • 本文翻译自官方文档http://redis.io/topics/persistence 。 Redis 持久化 R...
    六尺帐篷阅读 5,532评论 1 15