面试题答案
一键面试Redis RDB文件结构特点
- 整体布局:RDB文件是一个紧凑的二进制文件,它以特定格式序列化存储了Redis数据库中的所有键值对数据。
- 版本信息:文件开头包含RDB版本信息,不同版本的RDB文件格式可能略有差异,Redis通过版本信息来正确解析文件内容。
- 数据段:接着是数据库数据段,每个数据库以
SELECTDB
标记开始,后面跟随数据库编号。之后是该数据库中的所有键值对数据,键值对以特定编码方式存储,不同数据类型(如字符串、哈希、列表等)有不同的编码格式。 - EOF标记:文件末尾有一个结束标记
EOF
,表示RDB文件内容结束。
利用RDB文件在数据迁移场景下实现快速恢复的关键步骤
- 在旧服务器生成RDB文件
- 可以使用
SAVE
命令,该命令会阻塞Redis服务器,直到RDB文件生成完毕。 - 或者使用
BGSAVE
命令,此命令会在后台创建一个子进程来生成RDB文件,不会阻塞服务器,推荐使用此方式。生成的RDB文件默认保存在Redis配置文件dir
指定的目录下,文件名由dbfilename
指定,默认是dump.rdb
。
- 可以使用
- 传输RDB文件到新服务器
- 可通过
scp
、rsync
等文件传输工具将RDB文件从旧服务器复制到新服务器的相同目录(即Redis配置文件dir
指定的目录)。
- 可通过
- 在新服务器恢复数据
- 确保新服务器的Redis配置文件
dir
和dbfilename
设置与旧服务器生成RDB文件时的配置一致。 - 重启新服务器上的Redis服务,Redis在启动时会自动加载指定目录下的RDB文件,并将其中的数据恢复到内存中,完成数据迁移。
- 确保新服务器的Redis配置文件