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重写

避免命令堆积。重写

评论