Интерфейс командной строки 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