Интерфейс командной строки Redis для использования памяти не работает в кластере

Я использую библиотеку go-redis для проверки использования памяти определенным ключом в кластере Redis. Библиотека периодически дает сбой с ошибкой "redis: nil", что обычно означает, что она обращается к неправильному экземпляру redis для поиска ключа. Библиотека go-redis использует Redis CLI: "команду", чтобы получить список аргументов для каждой команды и найти позицию ключа redis в списке аргументов.

Конкретно для интерфейса командной строки памяти вывод "командного" интерфейса командной строки:

157) 1) "memory"
     2) (integer) -2
     3) 1) readonly
        2) random
     4) (integer) 0
     5) (integer) 0
     6) (integer) 0

Документ Redis: https://redis.io/commands/command, пункты 4 и 5 - это позиции первого ключа в аргументах и ​​последнего ключа в аргументах.

Но значения нулевые? Согласно документу CLI памяти: https://redis.io/commands/memory-usage Пункты 4 и 5 должны иметь значение 3.

Является ли это ошибкой в ​​выводе командной строки redis "command", или я неправильно это понимаю?

1 ответ

Это проблема дизайна в Redis, см. https://github.com/redis/redis/issues/7493

Последним действием было объединение запроса на перенос:https://github.com/go-redis/redis/pull/1400

Другие вопросы по тегам