Listar todos os bancos de dados Redis

192

Eu executei este comando para acessar meu servidor redis.

telnet 127.0.0.1 6379

Agora, quero mostrar todos os meus bancos de dados.

Por favor, diga-me este comando.

Obrigado.

Kevin Meredith
fonte
O que você quer dizer? Mostrar o número de bancos de dados disponíveis? Informações sobre bancos de dados usados? ...?
Sybille Peters

Respostas:

354

Não há comando para fazê-lo (como você faria com o MySQL, por exemplo). O número de bancos de dados Redis é fixo e definido no arquivo de configuração. Por padrão, você tem 16 bancos de dados. Cada banco de dados é identificado por um número (não um nome).

Você pode usar o seguinte comando para saber o número de bancos de dados:

CONFIG GET databases
1) "databases"
2) "16"

Você pode usar o seguinte comando para listar os bancos de dados para os quais algumas chaves estão definidas:

INFO keyspace
# Keyspace
db0:keys=10,expires=0
db1:keys=1,expires=0
db3:keys=1,expires=0

Observe que você deve usar o cliente "redis-cli" para executar esses comandos, não o telnet. Se você deseja usar o telnet, precisará executar esses comandos formatados usando o protocolo Redis.

Por exemplo:

*2
$4
INFO
$8
keyspace

$79
# Keyspace
db0:keys=10,expires=0
db1:keys=1,expires=0
db3:keys=1,expires=0

Você pode encontrar a descrição do protocolo Redis aqui: http://redis.io/topics/protocol

Didier Spezia
fonte
1
Não funciona aqui:INFO keyspace ERR wrong number of arguments for 'info' command
Matt
4
Você está usando uma versão pré-2.4? Muito antigo ... tente enviar INFO sem parâmetro.
Didier Spezia
redis_version: 2.4.14 também não possui espaço para chaves INFO.
hakre
80

Ou você pode simplesmente executar o seguinte comando e verá todos os bancos de dados da instância Redis sem inicializar redis-cli :

$ redis-cli INFO | grep ^db
db0:keys=1500,expires=2
db1:keys=200000,expires=1
db2:keys=350003,expires=1
raphaelstolt
fonte
80
Mas o mesmo poderia ser alcançado comredis-cli INFO keyspace
Roman Newaza
9
Voto negativo, porque isso é frágil, é provável que ocorra em versões futuras e porque existe um comando interno (como mencionado) para obter o mesmo resultado.
Madbreaks
@RomanNewaza, sua resposta deve ser a resposta aceita.
Fbtb 19/07/19
9

você pode usar redis-cli INFO keyspace

localhost:8000> INFO keyspace
# Keyspace
db0:keys=7,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
db2:keys=1,expires=0,avg_ttl=0
db11:keys=1,expires=0,avg_ttl=0
macno
fonte