如何解析Redis AOF文件?

How to parse Redis AOF file?

我正在尝试了解 Redis AOF 文件的工作原理,并可能会根据一些简单的 Redis AOF 文件编写解析器。现在我通过在 Redis 中执行这些命令生成了一个 AOF 文件:

SET firstkey firstvalue
SET secondkey secondvalue

生成的 AOF 文件如下所示:

*2

SELECT

0
*3

SET

firstkey

firstvalue
*3

SET

secondkey

secondvalue

我能看到firstkey、firstvalue和SET等关键字。但我不太明白其余的,尤其是*2等这些数字是什么意思,以及如何理解当 redis 尝试读取 aof 文件并重建数据库时,它们会起作用。我也无法在网上找到任何文件格式文档,因此非常感谢您的帮助!

*N是命令的参数个数,$M是每个参数的长度,即字节数。

在您的例子中,Redis 执行了 3 个命令:SELECT 0SET firstkey firstvalueSET secondkey secondvalue

SELECT 0 命令有 2 个参数,即 SELECT0。第一个参数的长度是6,第二个参数的长度是1。所以AOF文件记录:

*2\r\n\r\nSELECT\r\n\r\n0\r\n

您可以尝试其他 2 个命令进行练习。