sql >> Base de Datos >  >> NoSQL >> Redis

Cómo obtener todas las claves en Redis

  • La mayoría de los objetos (pero no todos) usan una clave
    • Uso de espacios de nombres
  • Recuperación de todas las claves existentes

Al igual que otros motores de bases de datos no relacionales, a veces puede ser difícil pensar en cómo Redis maneja las estructuras de datos y las asociaciones. Esto es particularmente cierto cuando Redis se compara con bases de datos relacionales más tradicionales con tablas en cuarentena, cada una de las cuales contiene varias filas y columnas para albergar datos.

Como Redis no es relacional, todo en el sistema está configurado con key/value básico. pares en el nivel más simple. Durante el desarrollo en particular, puede ser complicado hacer un seguimiento de todo lo que ya existe en la base de datos, por lo que en este breve tutorial cubriremos el método para recuperar todas las keys. desde una base de datos Redis con algunos comandos simples.

La mayoría de los objetos (pero no todos) usan una clave

Para la gran mayoría del almacenamiento de datos con Redis, los datos se almacenarán en una simple key/value par. Esto se muestra mejor a través de redis-cli (interfaz de línea de comandos) usando GET y SET comandos.

Por ejemplo, es posible que queramos almacenar información sobre books , como el title y author de algunos de nuestros favoritos.

> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK

El title y author son las keys hemos establecido y los valores de cadena reales se especificaron después. Entonces podemos verlos con GET , así:

> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"

Uso de espacios de nombres

Eso está muy bien, pero ¿cómo añadimos otro libro? No podemos reutilizar el mismo title y author claves o sobrescribiremos los datos existentes. En su lugar, podemos usar la sintaxis del espacio de nombres usando un : separador y dando a cada title o author entrada una key numérica única :

> SET title:1 "The Hobbit"
OK
> SET author:1 "J.R.R. Tolkien"
OK
> SET title:2 "The Silmarillion"
OK
> SET author:2 "The Silmarillion"
OK

Ahora usando GET requiere agregar la key numérica única también:

> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"

Recuperando todas las claves existentes

Resulta que cada SET El comando que emitimos anteriormente creó una key nueva y única dentro de nuestra base de datos Redis. Para obtener una lista de todas las keys actuales que existen, simplemente use las KEYS comando:

> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"

Siguiendo KEYS con un asterisco (* ), que actúa como una búsqueda con comodines, le pedimos a Redis que recupere todas las claves del sistema. Por lo tanto, no solo vemos nuestros dos title originales y author claves, sino también las cuatro versiones enumeradas que siguieron.

La sintaxis que sigue a KEYS se puede utilizar para buscar palabras o frases específicas dentro de la clave, o también la coincidencia exacta. Aquí queremos todas las claves que contengan el texto 'title' :

> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"

PRECAUCIÓN:Como se menciona en la documentación oficial, se recomienda evitar el uso de las KEYS comando en bases de datos muy grandes, pero en particular evite usarlo en un entorno de producción. Desde KEYS está devolviendo potencialmente todas las claves del sistema, esto puede tener un impacto negativo dramático en el rendimiento.