Как разобрать файл Redis AOF? - PullRequest
1 голос
/ 24 марта 2019

Я пытаюсь понять, как работает файл Redis AOF, и, возможно, напишу парсер, используя простой файл Redis AOF. Прямо сейчас я сгенерировал файл AOF, выполнив следующие команды в Redis:

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 Ответ

2 голосов
/ 25 марта 2019

*N - количество аргументов команды, а $M - длина, т. Е. Количество байтов каждого аргумента.

В вашем случае Redis выполнил 3 команды: SELECT 0, SET firstkey firstvalue и SET secondkey secondvalue.

SELECT 0 команда имеет 2 аргументов, то есть SELECT и 0 .Длина первого аргумента равна 6, а длина второго аргумента равна 1.Итак, записи в файле AOF:

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

Вы можете попробовать 2 другие команды для практики.

...