Tipo de datos básico de Redis (hash hash)
- picadillo
-
- Tipo de almacenamiento
- Ventajas y desventajas de String
- Comandos de operación comunes
-
- hset: establecer valor
- hget: obtén el valor
- hmset: establecer varios valores
- hmget: obtener varios valores
- hkeys: Obtiene todos los valores clave del hash
- hvals: obtiene todos los valores de la clave
- hgetall: Obtiene todos los valores de campo y valor de la clave
- hdel: elimina el campo especificado en la clave
- hlen: Obtiene el número de campos contenidos en el hash
- hexistas: determina si existe el hash
- hincrby: el valor entero en el hash aumenta
- hincrbyfloat: aumento del número de coma flotante en hash
- hsetnx
- hstrlen: obtiene la longitud de la cadena del valor del campo hash especificado
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
- 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
- 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
key
valor 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 elkey
conjunto de hash especificado no existe, crear un nuevo conjunto hash y elkey
asociado -
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
key
valor de la concentración especificada de los hash de campo especificados.Para cada campo centrado en hash no existe, el
nil
valor de retorno . Debido a que no existen las claves se considera que es un conjunto de hash vacío para unakey
ejecución inexistenteHMGET
, solo devolverá unanil
lista 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
key
el número de campos incluidos en el conjunto de hash especificado. -
valor de retorno
El número de campos en el hash, como
key
0 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
key
los campos numéricos especificados centralizados hash especificados. Sikey
no existe, cree un nuevo conjunto de hash y con lakey
asociació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
key
hash 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:field
increment
field
field
El valor contiene el tipo incorrecto (no una cadena).- Actualmente
field
oincrement
no se puede analizar como un tipo flotante.
-
valor de retorno
field
Implementación deincrement
valor 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
key
cuando el campo especificado de concentración de hash especificado no existe, estableciendo el valor del campo. Si elkey
conjunto de hash especificado no existe, cree un nuevo conjunto de hash y con lakey
asociació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>