如何解析Redis AOF文件?

时间:2019-03-24 18:39:36

标签: database redis node-redis

我试图了解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文件并重建数据库时。我也无法在线找到任何文件格式的文档,因此对您有所帮助!

1 个答案:

答案 0 :(得分: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个命令进行练习。