Tipo de datos básico de Redis (hash hash)

picadillo

Tipo de almacenamiento

Almacene varios pares clave-valor desordenados, la cantidad máxima de almacenamiento es 2 ^ 32-1 (aproximadamente 4 mil millones), el valor solo puede ser una cadena y otros tipos no se pueden anidar

Ventajas y desventajas de String

  1. ventaja
    • Reúna todos los valores relevantes en una clave para ahorrar espacio en la memoria
    • Utilice solo una clave para reducir los conflictos de claves
    • Cuando necesite obtener valores en lotes, solo necesita usar un comando para reducir el consumo de memoria / E / S / CPU
  2. Desventaja
    • El campo no puede establecer el tiempo de vencimiento por separado
    • Es necesario considerar la distribución del volumen de datos (cuando hay muchos campos, no se puede distribuir a varios nodos)

Comandos de operación comunes

hset: establecer valor

  • mando

    HSET key field value
    
  • Descripción

    Establezca el valor del campo especificado en el conjunto de hash especificado por clave.

    Si el conjunto de hash especificado por la clave no existe, se creará un nuevo conjunto de hash y se asociará con la clave.

    Si el campo existe en el conjunto de hash, se sobrescribirá.

  • valor de retorno

    • 1-si el campo es un campo nuevo
    • 0-Si el campo existía originalmente en el mapa
  • ejemplo

    redis> HSET myhash field1 "Hello"
    (integer) 1
    redis> HGET myhash field1
    "Hello"
    redis> 
    

hget: obtén el valor

  • mando

    HGET key field
    
  • Descripción

    Devuelve el valor asociado con el campo en el conjunto de hash especificado por clave

  • valor de retorno

    El valor asociado con este campo. Cuando el campo no existe o la clave no existe, se devuelve nil.

  • ejemplo

    redis> HSET myhash field1 "foo"
    (integer) 1
    redis> HGET myhash field1
    "foo"
    redis> HGET myhash field2
    (nil)
    redis> 
    

hmset: establecer varios valores

  • mando

    HMSET key field value [field value ...]
    
  • Descripción

    Establezca el keyvalor de la concentración especificada de los hash de campo especificados. Este comando reescribirá todos los campos que existen en el conjunto de hash. Si el keyconjunto de hash especificado no existe, crear un nuevo conjunto hash y el keyasociado

  • ejemplo

    redis> HMSET myhash field1 "Hello" field2 "World"
    OK
    redis> HGET myhash field1
    "Hello"
    redis> HGET myhash field2
    "World"
    redis> 
    

hmget: obtener varios valores

  • mando

    HMGET key field [field ...]
    
  • Descripción

    Devuelve el keyvalor de la concentración especificada de los hash de campo especificados.

    Para cada campo centrado en hash no existe, el nilvalor de retorno . Debido a que no existen las claves se considera que es un conjunto de hash vacío para una keyejecución inexistente HMGET, solo devolverá una nillista de valores

  • valor de retorno

    Contiene una lista de los campos dados y sus valores, y mantiene el mismo orden que la solicitud.

  • ejemplo

    redis> HSET myhash field1 "Hello"
    (integer) 1
    redis> HSET myhash field2 "World"
    (integer) 1
    redis> HMGET myhash field1 field2 nofield
    1) "Hello"
    2) "World"
    3) (nil)
    redis> 
    

hkeys: Obtiene todos los valores clave del hash

  • mando

    HKEYS key
    
  • Descripción

    Devuelve los nombres de todos los campos en el conjunto de hash especificado por clave.

  • valor de retorno

    La lista de campos en el conjunto de hash, se devuelve una lista vacía cuando el conjunto de hash especificado por clave no existe.

  • ejemplo

    redis> HSET myhash field1 "Hello"
    (integer) 1
    redis> HSET myhash field2 "World"
    (integer) 1
    redis> HKEYS myhash
    1) "field1"
    2) "field2"
    redis> 
    

hvals: obtiene todos los valores de la clave

  • mando

    HVALS key
    
  • Descripción

    Devuelve los valores de todos los campos del conjunto hash especificado por clave.

  • valor de retorno

    Una lista de valores en el conjunto de hash. Cuando el conjunto de hash especificado por clave no existe, se devuelve una lista vacía.

  • ejemplo

    redis> HSET myhash field1 "Hello"
    (integer) 1
    redis> HSET myhash field2 "World"
    (integer) 1
    redis> HVALS myhash
    1) "Hello"
    2) "World"
    redis> 
    

hgetall: Obtiene todos los valores de campo y valor de la clave

  • mando

    HGETALL key
    
  • Descripción

    Devuelve todos los campos y valores en el conjunto de hash especificado por clave. En el valor de retorno, el siguiente de cada nombre de campo es su valor, por lo que la longitud del valor de retorno es el doble del tamaño del conjunto de hash

  • valor de retorno

    Una lista de campos y valores en el conjunto hash. Cuando el conjunto de hash especificado por clave no existe, se devuelve una lista vacía.

  • ejemplo

    redis> HSET myhash field1 "Hello"
    (integer) 1
    redis> HSET myhash field2 "World"
    (integer) 1
    redis> HGETALL myhash
    1) "field1"
    2) "Hello"
    3) "field2"
    4) "World"
    redis> 
    

hdel: elimina el campo especificado en la clave

  • mando

    HDEL key field [field ...]
    
  • Descripción

    Elimina el dominio especificado del conjunto de hash especificado por clave. Se ignorarán los dominios que no existen en el conjunto de hash.

    Si el conjunto de hash especificado por la clave no existe, se considerará como un conjunto de hash vacío y el comando devolverá 0.

  • valor de retorno

    Devuelve el número de dominios eliminados correctamente del conjunto de hash, excluyendo aquellos dominios que se señalan pero que no existen

  • ejemplo

    redis> HSET myhash field1 "foo"
    (integer) 1
    redis> HDEL myhash field1
    (integer) 1
    redis> HDEL myhash field2
    (integer) 0
    redis> 
    

hlen: Obtiene el número de campos contenidos en el hash

  • mando

    HLEN key
    
  • Descripción

    Devuelve keyel número de campos incluidos en el conjunto de hash especificado.

  • valor de retorno

    El número de campos en el hash, como key0 si el conjunto de hash especificado no existe

  • ejemplo

    redis> HSET myhash field1 "Hello"
    (integer) 1
    redis> HSET myhash field2 "World"
    (integer) 1
    redis> HLEN myhash
    (integer) 2
    redis> 
    

hexistas: determina si existe el hash

  • mando

    HEXISTS key field
    
  • Descripción

    Devuelve si el campo existe en el hash.

  • valor de retorno

    • 1 --hash contiene el campo.
    • 0 --hash no contiene el campo o la clave no existe.
  • ejemplo

    redis> HSET myhash field1 "foo"
    (integer) 1
    redis> HEXISTS myhash field1
    (integer) 1
    redis> HEXISTS myhash field2
    (integer) 0
    redis> 
    

hincrby: el valor entero en el hash aumenta

  • mando

    HINCRBY key field increment
    
  • Descripción

    Aumente keylos campos numéricos especificados centralizados hash especificados. Si keyno existe, cree un nuevo conjunto de hash y con la keyasociación. Si el campo no existe, el valor del campo se establece en 0 antes de que se realice la operación.

    HINCRBY El rango de valores admitidos está limitado a enteros de 64 bits con signo.

  • valor de retorno

    El valor de este campo después de que se ejecuta la operación de valor agregado.

  • ejemplo

    redis> HSET myhash field 5
    (integer) 1
    redis> HINCRBY myhash field 1
    (integer) 6
    redis> HINCRBY myhash field -1
    (integer) 5
    redis> HINCRBY myhash field -10
    (integer) -5
    redis> 
    

hincrbyfloat: aumento del número de coma flotante en hash

  • mando

    HINCRBYFLOAT key field increment
    
  • Descripción

    Realice una adición de tipo flotante para el valor del campo keyhash especificado . Si no existe, establézcalo en 0 antes de realizar la operación. Si ocurre una de las siguientes situaciones, se devuelve un error:fieldincrementfield

    • fieldEl valor contiene el tipo incorrecto (no una cadena).
    • Actualmente fieldo incrementno se puede analizar como un tipo flotante.
  • valor de retorno

    fieldImplementación de incrementvalor agregado

  • ejemplo

    redis> HSET mykey field 10.50
    (integer) 1
    redis> HINCRBYFLOAT mykey field 0.1
    "10.6"
    redis> HSET mykey field 5.0e3
    (integer) 0
    redis> HINCRBYFLOAT mykey field 2.0e2
    "5200"
    redis> 
    

hsetnx

  • mando

    HSETNX key field value
    
  • Descripción

    Solo keycuando el campo especificado de concentración de hash especificado no existe, estableciendo el valor del campo. Si el keyconjunto de hash especificado no existe, cree un nuevo conjunto de hash y con la keyasociación. Si el campo ya existe, esta operación no tiene ningún efecto.

  • valor de retorno

    • 1-Si el campo es un campo nuevo y se asignó correctamente
    • 0-Si el campo ya existe en el conjunto hash, no se realiza ninguna operación
  • ejemplo

    redis> HSETNX myhash field "Hello"
    (integer) 1
    redis> HSETNX myhash field "World"
    (integer) 0
    redis> HGET myhash field
    "Hello"
    redis> 
    

hstrlen: obtiene la longitud de la cadena del valor del campo hash especificado

  • mando

    HSTRLEN key field
    
  • valor de retorno

    Devuelve la longitud de la cadena del valor del campo hash especificado. Si el hash o el campo no existe, devuelve 0.

  • ejemplo

    redis> HMSET myhash f1 HelloWorld f2 99 f3 -256
    OK
    redis> HSTRLEN myhash f1
    (integer) 10
    redis> HSTRLEN myhash f2
    (integer) 2
    redis> HSTRLEN myhash f3
    (integer) 4
    redis> 
    

Supongo que te gusta

Origin blog.csdn.net/huangge1199/article/details/112319703
Recomendado
Clasificación