redis源码剖析(十三)—— dump.rdb文件分析

操作方式

127.0.0.1:9999> flushall
OK
127.0.0.1:9999> set name hodge
OK
127.0.0.1:9999> save
OK

查看rdb文件

[root@python src]# od -c dump.rdb
0000000   R   E   D   I   S   0   0   0   6 376  \0  \0 004   n   a   m
0000020   e 005   h   o   d   g   e 377 004   | 313 025   =   G   % 310
0000040
R E D I S 五个字节的REDIS
0 0 0 6 四个字节版本号(代表rdb文件的版本)
376 \0 切换到0号数据库
\0 004 n a m e 写入零号库总共四个字母
005 h o d g e 005总共5个字母
\0 004 n a m e 005 h o d g e
377 代表efo常量。
004 313 025 = G % 310 这个是校验和
查看各个库有多少字母 info db0:keys=1,expires=0,avg_ttl=0
[root@python src]# od -cx dump.rdb //同时用ASCII编码和16进制格式打印RDB文件。
0000000   R   E   D   I   S   0   0   0   6 376  \0  \0 004   n   a   m
           4552    4944    3053    3030    fe36    0000    6e04    6d61
0000020   e 005   h   o   d   g   e 377 004   | 313 025   =   G   % 310
           0565    6f68    6764    ff65    7c04    15cb    473d    c825
0000040
od -c 同时用ASCII编码
od -x 16进制格式打印RDB文件
八个字节校验和 0565 6f68 6764 ff65 7c04 15cb 473d c825

参考文档

redis作者解释rdb和aof的不同

原文:http://oldblog.antirez.com/post/redis-persistence-demystified.html
翻译:https://my.oschina.net/LucasZhu/blog/1811694

redisRDB文件格式Sripathi Krishnam

原文:https://github.com/sripathikrishnan/redis-rdb-tools/wiki/Redis-RDB-Dump-File-Format
翻译:https://github.com/wen866595/open-doc/blob/master/redis-doc/Redis-RDB-Dump-File-Format-cn.md

redis各个版本变化

https://github.com/sripathikrishnan/redis-rdb-tools/blob/master/docs/RDB_Version_History.textile

发布了257 篇原创文章 · 获赞 223 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/csdn_kou/article/details/103400068