liuzhixiong_521
LovelyBear2019
采纳率0%
2018-12-10 08:34 阅读 2.8k

Redis持久化的dump.rdb是如何生成的?

5

Redis有两种持久化方式,其中一种是RDB方式生成dump.rdb文件,我想了解一下这个.rdb格式的文件是如何生成的,与redis的内容是如何对应起来的呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • qq_34694342 _xiaoxiao程序员 2018-12-12 02:59

    Redis自身配置会有一个定时任务,按照一定时间周期将服务中的所有数据写入磁盘,也就是内存快照。当然这个存储的过程楼主可以去查阅资料,感兴趣的话我也可以贴给你。

    不过RDB这种方式是有数据丢失的风险的,使用AOF会更安全

    点赞 1 评论 复制链接分享
  • u010136832 小邓在路上 2018-12-10 08:38
  • liuzhixiong_521 LovelyBear2019 2018-12-10 08:41

    老哥,我问的是redis内存数据如何持久化为.rdb文件,而不是持久化的时机以及如何恢复数据。因为我要参照这个对另外一个服务持久化。

    点赞 评论 复制链接分享
  • qq_42280739 Can't surpass 2018-12-10 12:16

    redis服务器程序会自动对数据库做一次遍历,然后这个快照会生成一个rdb文件。
    这个持久化机制叫做SNAPSHOT
    并且每次Redis重启会自动加载这个文件,这个对应的文件可以在redis配置中进行配置

    点赞 评论 复制链接分享
  • gammey gammey 2018-12-11 09:04

    理论上来说,redis是将数据存储在内存中的,而dump.rdb是根据配置的条件在规定的时间将内存内的数据保存到文件中。所以如果要详细了解redis的dump文件的格式,建议可以阅读redis的源码。

    点赞 评论 复制链接分享
  • qq_34228327 何以慰風塵 2019-07-09 10:14

    redis中有五种对象,字符串对象,列表对象,哈希对象,集合对象和有序集合对象,每一种对象又有不同的编码方式,其中字符串对象有三种编码,其它对象的编码方式都只有两种,如:哈希对象的编码方式有压缩列表编码和字典编码。在RDB持久化时,会针对数据不同而采用不同的格式进行存储。在载入RDB时又根据这些格式来复线出数据库。具体可以参考https://blog.csdn.net/qq_34228327/article/details/86749875

    点赞 评论 复制链接分享

相关推荐