【问题标题】:How to parse Redis AOF file?如何解析 Redis AOF 文件?
【发布时间】:2019-03-24 18:39:35
【问题描述】:

我正在尝试了解 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】:

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

在你的例子中,Redis 执行了 3 个命令:SELECT 0SET 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 个命令进行练习。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    相关资源
    最近更新 更多