Listar todas las bases de datos de Redis

192

Ejecuté este comando para acceder a mi servidor redis.

telnet 127.0.0.1 6379

Ahora, quiero mostrar todas mis bases de datos.

Por favor dime este comando.

Gracias.

Kevin Meredith
fuente
¿Qué quieres decir? ¿Mostrar el número de bases de datos disponibles? ¿Información sobre bases de datos usadas? ...?
Sybille Peters el

Respuestas:

354

No hay un comando para hacerlo (como lo haría con MySQL, por ejemplo). El número de bases de datos Redis es fijo y se establece en el archivo de configuración. Por defecto, tiene 16 bases de datos. Cada base de datos se identifica por un número (no un nombre).

Puede usar el siguiente comando para conocer la cantidad de bases de datos:

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

Puede usar el siguiente comando para enumerar las bases de datos para las que se definen algunas claves:

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

Tenga en cuenta que se supone que debe usar el cliente "redis-cli" para ejecutar estos comandos, no telnet. Si desea utilizar telnet, debe ejecutar estos comandos formateados con el protocolo Redis.

Por ejemplo:

*2
$4
INFO
$8
keyspace

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

Puede encontrar la descripción del protocolo Redis aquí: http://redis.io/topics/protocol

Didier Spezia
fuente
1
No funciona aquí:INFO keyspace ERR wrong number of arguments for 'info' command
Matt
44
¿Estás utilizando una versión anterior a la 2.4? Demasiado viejo ... intente enviar INFO sin parámetro.
Didier Spezia
redis_version: 2.4.14 tampoco tiene espacio de teclas INFO.
hakre
80

O simplemente puede ejecutar el siguiente comando y verá todas las bases de datos de la instancia de Redis sin iniciar redis-cli :

$ redis-cli INFO | grep ^db
db0:keys=1500,expires=2
db1:keys=200000,expires=1
db2:keys=350003,expires=1
raphaelstolt
fuente
80
Pero lo mismo se podría lograr conredis-cli INFO keyspace
Newaza Romano
9
El downvoting porque es frágil, es probable que se rompa en futuras versiones, y porque hay un comando incorporado (como se mencionó) para lograr el mismo resultado.
Madbreaks
@RomanNewaza su respuesta debería ser la respuesta aceptada.
fbtb
9

puedes 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
fuente