- 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.