Как определить ключи Redis из команды монитора Redis-cli? - PullRequest
0 голосов
/ 15 февраля 2020

Возможно, связано с - Команда Redis для получения всех доступных ключей?

У меня есть сервер Redis, хранящий данные SixPack (https://github.com/sixpack/sixpack - платформа для включения А / Б тестирование). Я могу контролировать сервер Redis и видеть следующие примеры записей, когда я запускаю команду монитора:

$ redis-cli monitor|grep 'TEST'

Я вижу, что используются / установлены несколько ключей. Я прилагаю пример ниже:

1581720438.878978 [15 127.0.0.1:39722] "GETBIT" "sixpack:e:-28591_:excluded" "2307"
1581720439.623866 [15 127.0.0.1:39722] "LRANGE" "sixpack:e:-28003_:alternatives" "0" "-1"
1581720439.624209 [15 127.0.0.1:39722] "HGET" "sixpack:e:-28003_" "traffic_fraction"
1581720439.624557 [15 127.0.0.1:39722] "GET" "sixpack:e:-28003_:winner"
1581720439.624822 [15 127.0.0.1:39722] "HEXISTS" "sixpack:e:-28003_" "archived"
1581720439.625110 [15 127.0.0.1:39722] "EVALSHA" "bcbf3b3ac336a33c2cd7ad0e1fca28db7b49fdee" "1" "sixpack:e:-28003_Recapture:users" "ac945bf7-285e-4f69-83fd-1336e084a318"

Однако, когда я пытаюсь получить доступ к ключам с помощью команды $ redis-cli KEYS '*', я получаю только пустой список (empty list or set).

Обновлено: Я проверил, что это не настройка кластера. Я также проверяю команду DBSIZE. Возвращает 0.

Как я могу получить ключи из выхода MONITOR? Есть ли способ получить все ключи в CLI Redis?

Ответы [ 2 ]

2 голосов
/ 15 февраля 2020

Соответствующий индекс базы данных должен использоваться при запуске команды KEYS, если используется более одной базы данных Redis.

$redis-cli -n <DB number> KEYS '*' # or use --scan

Redis поставляется с 16 «базами данных» по умолчанию, которые можно использовать для разделения ключей вверх. Чтобы использовать их из инструмента, redis-cli -n 2, чтобы начать использовать 3-ю БД (по умолчанию 0). Оказавшись внутри инструмента или из API, есть команда SELECT 2 (опять же, чтобы выбрать базу данных для использования). Можно указать больше - это просто число в файле redis.conf.

В конфигурации инструмента тестирования Sixpack A / B есть два метода, позволяющих выбрать, какую базу данных Redis использовать - в конфигурации есть ключ (например) redis_db: 15, или он, и другие могут быть установлены переменной среды: SIXPACK_CONFIG_REDIS_DB, наряду с _PORT, _HOST, _PASSWORD & _PREFIX.

0 голосов
/ 15 февраля 2020

Основываясь на подсказке от @AlisterBulman, я запустил команду INFO следующим образом.

 $ redis-cli INFO | grep keys

Из выходных данных я вижу, что номер БД '15' имеет ключи.

db15:keys=300869,expires=0,avg_ttl=0

Затем я запустил эту команду, чтобы получить ключи.

$ redis-cli -n 15 KEYS '*'
...