码迷,mamicode.com
首页 > 数据库 > 详细

Redis持久化之RDB持久化

时间:2020-11-30 16:15:50      阅读:11      评论:0      收藏:0      [点我收藏+]

标签:解析   校验   art   结果   图片   内容   内存数据   app   com   

Redis持久化

Redis虽然是以一个内存数据库闻名的,但为了提供可靠、安全的功能保障,也是需要有持久化能力的,
Redis有两种持久化方式:RDB(redis database)持久化和AOF持久化(append only file),其中RDB是Redis默认的持久化方式。

RDB持久化

RDB持久化可以通过调用save或者bgsave命令触发,其中save命令是由redis服务进程执行的,因此是阻塞式的命令,不建议频繁使用;
bgsave则是由服务进程fork一个进程来调用,因此不影响程序执行其他命令(save、bgsave和bgwriteaof除外)。

Redis默认的持久化机制是:

save 900 1
save 300 10
save 60 10000

表示的意思是:
900秒内,有1次更新则触发bgsave
300秒内,有10次更新则触发bgsave
900秒内,有10000次更新,则触发bgsave

RDB持久化文件

RDB持久化会产生一个dump.rdb文件,我使用的redis是通过docker创建的,默认在容器内部目录/data下面
技术图片

因为dump.rdb文件是压缩过的,所以直接用cat或者vi是查看不到内容的,可以使用一些工具来查看其内容,我用的是python组件rdbtools
首先安装一下:

pip3 install rdbtools
pip3 install python-lzf

然后在dump.rdb的目录使用rdb命令解析并将结果重定向到dump.json中

rdb --command json dump.rdb > dump.json

查看dump.json
技术图片

当然,这里并不是dump.rdb中全部的文件内容,这里只有数据库的内容,实际上dump.rdb文件还定义了文件头,文件版本,结束符和校验和等等。
技术图片

参考

书籍

黄健宏前辈的《Redis设计与实现》

网友链接

https://blog.csdn.net/floatdreamed/article/details/103720986

Redis持久化之RDB持久化

标签:解析   校验   art   结果   图片   内容   内存数据   app   com   

原文地址:https://www.cnblogs.com/alinainai/p/14039194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!