Saltar al contenido

Cómo administrar los hashes en Redis

marzo 4, 2020

 

Introducción

Redis es un código abierto, almacén de datos clave-valor en memoria. A Redis de hash es un tipo de datos que representa una asignación entre un campo de cadena y un valor de cadena. Hashes pueden contener muchos pares de campos de valor y están diseñados para no ocupa mucho espacio, lo que es ideal para la representación de objetos de datos. Por ejemplo, un hash podría representar un cliente, e incluyen campos como nombre, dirección, correo electrónico o customer_id.

Este tutorial va a ir sobre cómo manejar los hashes en Redis, desde la creación de ellos para activar y borrar los datos contenidos en un hash.

Cómo utilizar esta guía

Esta guía está escrita como una hoja de trucos con ejemplos autónomos. Le animamos a saltar a cualquier sección que es relevante para la tarea que está tratando de completar.

Los comandos mostrados en esta guía fueron probados en un 18,04 servidor Ubuntu corriendo Redis versión 4.0.9. Para configurar un entorno similar, puede seguir Paso 1 de nuestra guía sobre cómo instalar y Secure Redis en Ubuntu 18.04. Vamos a demostrar cómo se comportan estos comandos ejecutando con Redis-cli, la interfaz de línea de comandos Redis. Tenga en cuenta que si usted está utilizando una interfaz diferente Redis – Redli, por ejemplo – la salida exacta de ciertos comandos pueden ser diferentes.

Como alternativa, puede aprovisionar una base de datos gestionada ejemplo Redis para probar estos comandos, pero tenga en cuenta que, dependiendo del nivel de control que le indique su proveedor de base de datos, algunos comandos de esta guía puede no w o k como se describe. Para aprovisionar una base de datos digitalocean administrados, siga nuestra documentación del producto Gestionados bases de datos. Entonces, se debe ya sea instalar Redli o establecieron un túnel TLS en o der para conectarse a la base de datos gestionada a través de TLS.

Creación de hashes

Para crear un hash, ejecute el comando HAjuste. Este comando acepta el nombre de la clave hash, la cadena de campo, y la correspondiente cadena de valor como argumentos:

hset poet:Verlaine nationality French

  • HAjuste poeta: la nacionalidad Verlaine francesa

Nota: En este ejemplo y en los siguientes, poeta: Verlaine es la tecla de almohadilla. Puntos, guiones y dos puntos se utilizan normalmente para hacer llaves de varias palabras y campos más legible. Es muy útil para asegurarse de que sus claves siguen un formato coherente y de fácil lectura. vuelve

HSEt (entero) 1 si el campo especificado es un nuevo campo y el valor se estableció correctamente:

Output(integer) 1

Sin embargo, si usted no puede incluir un valor, campo o nombre de la clave hash, HAjuste volverá una error.

También, nota que HAjuste se sobreponen a los contenidos del hash si ya existe:

hset poet:Verlaine nationality Francais

  • HAjuste poeta: Verlaine nacionalidad Francais

Si el campo ya existe y su valor se ha actualizado correctamente, HAjuste volverá (entero) 0:

Output(integer) 0

también puede utilizar hsetnx añadir campos a los hashes, pero sólo funcionará si el campo no existe todavía. Si el campo especificado no existe, la hsetnx no tendrá ningún efecto y volverá (integer) 0:

hsetnx poet:Verlaine nationality French

  • hsetnx poeta: nacionalidad Verlaine francés

Output(integer) 0

Para configurar múltiples pares campo / valor para un conjunto dado, utilizar el comando hmset seguido por las cadenas de campo / valor correspondientes:

hmset poet:Verlaine born 1844 died 1896 genre Decadent

  • hmset poeta: Verlaine nacido 1844 murió 1896 género decadente

hmset acaba de regresar bien si se ha realizado correctamente.

recuperación de información de hash

Usted puede determinar si existe un campo para un hash dada con el comando hexists:

hexists poet:Verlaine nationality

  • hexists poeta: hexists nacionalidad Verlaine

volverán (entero) 1 si el campo existe, y (integer) 0 si no lo hace.

Para devolver el valor de un campo, ejecute el comando hget seguido de la tecla de almohadilla y el campo cuyo valor desea recuperar:

hget poet:Verlaine nationality

  • hget poeta: la nacionalidad Verlaine

Output"Francais"

hmget utiliza la misma sintaxis, pero puede devolver el los valores de varios campos

hmget poet:Verlaine born died

  • poeta hmget: Verlaine nacido muerto

Output1) "1844"
2) "1896"

Si el hash se pasa a hget o hmget no existe, ambos comandos volverán (cero):

hmget poet:Dickinson born died

  • hmget poeta: Dickinson nacido murieron

Output1) (nil)
2) (nil)

para obtener una lista de todos los campos incluidos dentro de un determinado hachís, se ejecutan las hkeys comando:

hkeys poet:Verlaine

  • hkeys poeta: Verlaine

Output1) "nationality"
2) "born"
3) "died"
4) "genre"

Por el contrario, ejecutar Hvals para recuperar una lista de valores mantenidos dentro de un hash:

hvals poet:Verlaine

  • Hvals poeta: Verlaine

Output1) "French"
2) "1844"
3) "1896"
4) "Decadent"

para devolver una lista de todos los campos en manos de un hash y sus valores asociados, ejecute hgetall:

hgetall poet:Verlaine

  • hgetall poeta: Verlain e

Output1) "nationality"
2) "French"
3) "born"
4) "1844"
5) "died"
6) "1896"
7) "genre"
8) "Decadent"

puede encontrar t h e número de campos de un h como h ejecutando h len , w h ic h significa “ h como h len gt h “:

hlen poet:Verlaine

  • HLEN poeta: Verlaine

Output(integer) 4

Usted puede encontrar t < str ong> h str ong> e len gt < str ong> h str ong> de t < str ong> h str ong> valor e str ing asocia ingenio < str ong> h str ong> un campo ingenio < str ong> h str ong> < str ong> h str ong> str len , w < str ong> h str ong > ic < str ong> h str ong> significa “< str ong> h str ong> como < str ong> h str ong> str ing le n gt < str ong> h str ong>”:

hstrlen poet:Verlaine nationality

  • hstrlen poeta: nacionalidad Verlaine

Output(integer) 8

hlen volverá (integer) 0 si no existe el hash.

eliminar campos de hashes

Para eliminar un campo de un hash, ejecute el comando HDEL. HDEL puede aceptar múltiples campos como argumentos, y devolver un número entero que indica cuántos campos se retira a partir del hash:

hdel poet:Verlaine born died

  • HDEL poeta: Verlaine nacido murió

Output(integer) 2

Si pasa un campo que no existe a HDEL, se pasará por alto ese campo, pero elimine los otros campos existentes que se especifiquen.

Conclusión

Esta guía detalla una serie de comandos que se utilizan para crear y administrar los hashes en Redis. Si hay otros comandos relacionados, argumentos o procedimientos que le gustaría ver descrita en esta guía, por favor pregunte o hacer sugerencias en los comentarios a continuación.

Para obtener más información sobre los comandos Redis, ver nuestra serie de tutoriales sobre cómo gestionar una base de datos Redis.