1. Introducción
En este breve tutorial, veremos diferentes formas de enumerar todas las bases de datos disponibles en Redis.
2. Listado de todas las bases de datos
En primer lugar, la cantidad de bases de datos en Redis es fija . Por lo tanto, podemos extraer esta información del archivo de configuración con un simple comando grep :
$ cat redis.conf | grep databases databases 16
Pero, ¿y si no tenemos acceso al archivo de configuración? En este caso, podemos obtener la información que necesitamos leyendo la configuración en tiempo de ejecución a través de redis-cli :
127.0.0.1:6379> CONFIG GET databases 1) "databases" 2) "16"
Por último, aunque es más adecuado para aplicaciones de bajo nivel, podemos utilizar el Protocolo de serialización de Redis (RESP) a través de una conexión 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. Listado de todas las bases de datos con entradas
A veces, querremos obtener más información sobre las bases de datos que contienen claves. Para ello, podemos aprovechar el comando INFO de Redis , que se utiliza para obtener información y estadísticas sobre el servidor . Aquí, queremos centrar nuestra atención específicamente en la sección del espacio de claves , que contiene datos relacionados con la base de datos:
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
El resultado enumera las bases de datos que contienen al menos una clave, junto con algunas estadísticas:
- número de llaves contenidas
- número de llaves con vencimiento
- promedio de tiempo de vida de las claves
4. Conclusión
En resumen, este artículo pasó por diferentes formas de enumerar bases de datos en Redis. Como hemos visto, existen diferentes soluciones y cuál elijamos realmente depende de lo que estemos tratando de lograr.
Un grep es generalmente la mejor opción si tenemos acceso al archivo de configuración. De lo contrario, podemos usar redis-cli . RESP no suele ser una buena opción a menos que estemos creando una aplicación que necesite un protocolo de bajo nivel. Finalmente, el comando INFO es útil si queremos recuperar solo bases de datos que contienen claves.