如何解析Redis AOF文件?

Rio*_*aki 3 database redis node-redis

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

SET firstkey firstvalue
SET secondkey secondvalue
Run Code Online (Sandbox Code Playgroud)

生成的 AOF 文件如下所示:

*2
$6
SELECT
$1
0
*3
$3
SET
$8
firstkey
$10
firstvalue
*3
$3
SET
$9
secondkey
$11
secondvalue
Run Code Online (Sandbox Code Playgroud)

我可以看到像firstkey,firstvalue和SET等,但我的关键字不太明白休息,espcially这些数字都是什么喜欢*2$6手段,他们在Redis的尝试读取AOF文件,并重建数据库是如何工作的。我在网上也找不到任何文件格式的文档,因此感谢您的帮助!

for*_*ack 6

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

在您的情况下,Redis 执行了 3 个命令:SELECT 0,SET firstkey firstvalueSET secondkey secondvalue.

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

*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n

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