我正在尝试理解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文件和重建数据库时它们是如何工作的。我在网上也找不到任何文件格式的文档,所以如果有任何帮助我将不胜感激!
发布于 2019-03-25 10:23:04
*N
是命令的参数数量,$M
是每个参数的长度,即字节数。
在您的示例中,Redis执行3个命令:SELECT 0
、SET firstkey firstvalue
和SET secondkey secondvalue
。
SELECT 0
命令具有2
参数,即SELECT和。第一个参数的长度为6
,第二个参数的长度为1
。所以AOF文件记录:
*2\r\n$6\r\nSELECT\r\n$1\r\n0\r\n
您可以尝试其他两个命令来练习。
https://stackoverflow.com/questions/55327196
复制相似问题