«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 полезна, если мы хотим получить только те базы данных, которые содержат ключи.

«