1. RDB持久化
RDB持久化是保存文件内容,生成一个.rdb二进制文件
1.1 SAVE命令
SAVE命令运行时,redis服务器会阻塞。
1.2 BGSAVE命令
创建一个子进程来保存,redis服务器可以继续处理客户端请求。
1.3 reb文件结构
redis | db_version | databases | EOF | check_num
如:
“redis” | 0 0 0 6 | … | 377 | 485874368534668 |
1.3.1 关于 database部分
redis | db_version | databases 0 | database 3 | EOF | check_num
其中每个database i
selectDB | db_number | key_value_pairs
key_value_pairs有so many的数据类型
见《redis设计与实现》第127页
2. AOF持久化
与RDB的保存数据库的键值对的方式不同,AOF是保存redis服务器所执行的命令来记录数据库状态。
2.1 AOF持久化的实现
分为 命令追加,文件写入和文件同步这3步。
2.2 AOF重写
避免命令堆积。重写