Перейти к основному содержимому

Список всех баз данных Redis

· 2 мин. чтения

1. Введение

В этом кратком руководстве мы рассмотрим различные способы перечисления всех баз данных, доступных в Redis .

2. Список всех баз данных

Во-первых, количество баз данных в Redis фиксировано . Поэтому мы можем извлечь эту информацию из файла конфигурации с помощью простой команды grep :

$ cat redis.conf | grep databases
databases 16

Но что, если у нас нет доступа к файлу конфигурации? В этом случае мы можем получить нужную нам информацию, прочитав конфигурацию во время выполнения через redis-cli :

127.0.0.1:6379> CONFIG GET databases
1) "databases"
2) "16"

Наконец, хотя он больше подходит для низкоуровневых приложений, мы можем использовать протокол сериализации Redis (RESP) через telnet-соединение:

$ telnet 127.0.0.1 6379
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
*3
$6
CONFIG
$3
GET
$9
databases
*2
$9
databases
$2
16

3. Список всех баз данных с записями

Иногда нам нужно получить больше информации о базах данных, содержащих ключи. Для этого мы можем воспользоваться командой Redis INFO , используемой для получения информации и статистики о сервере . Здесь мы специально хотим сосредоточить наше внимание на разделе пространства ключей , который содержит данные, связанные с базой данных:

127.0.0.1:6379> INFO keyspace
# Keyspace
db0:keys=2,expires=0,avg_ttl=0
db1:keys=4,expires=0,avg_ttl=0
db2:keys=9,expires=0,avg_ttl=0

В выходных данных перечислены базы данных, содержащие хотя бы один ключ, а также несколько статистических данных:

  • количество ключей, содержащихся
  • количество ключей со сроком действия
  • средний срок жизни ключей

4. Вывод

Подводя итог, в этой статье были рассмотрены различные способы перечисления баз данных в Redis. Как мы видели, существуют разные решения, и какое из них мы выбираем, зависит от того, чего мы пытаемся достичь.

Как правило, grep — лучший вариант, если у нас есть доступ к файлу конфигурации. В противном случае мы можем использовать redis-cli . RESP обычно не является хорошим выбором, если только мы не создаем приложение, для которого требуется протокол низкого уровня. Наконец, команда INFO полезна, если мы хотим получить только те базы данных, которые содержат ключи.