如何解析Redis AOF文件?

问题描述 投票:1回答:1

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

SET firstkey firstvalue
SET secondkey secondvalue

生成的AOF文件如下所示:

*2
$6
SELECT
$1
0
*3
$3
SET
$8
firstkey
$10
firstvalue
*3
$3
SET
$9
secondkey
$11
secondvalue

我可以看到关键字,如firstkey,firstvalue和SET等。但我不太了解其余的,特别是所有这些数字,如*2$6的意思,以及当redis尝试读取aof文件并重建时它们是如何工作的数据库。我也无法在线找到任何文件格式文档,所以任何帮助表示赞赏!

database redis node-redis
1个回答
2
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.