I. Visión general
Podemos Redis al igual que el tipo String clave hash Valor de cadena y el contenedor mapa. Por lo tanto, este tipo es muy adecuado para almacenar el valor de la información del objeto. El nombre de usuario, contraseña edad, y similares. Si el hash contiene muy poco campo, entonces este tipo de datos también utilizar solamente muy poco espacio en disco. Cada Hash puede almacenar 4294967295 pares.
En segundo lugar, el comando relevante
1, la asignación
Ejemplo: val campo de hash HAjuste
Uso: Si no existe la tabla hash, se crea una nueva tabla hash y operación PONH.
Si el campo ya existe en la tabla hash, el valor antiguo será sobrescrito.
Devoluciones: si el campo es una tabla hash de un nuevo campo, y el valor del éxito, regresó. Si la tabla hash ya existe en el campo de dominio y los viejos valores han sido sobrescrito con el nuevo valor, devuelve 0.
Ejemplo: val campo de hash hsetnx
Uso: Si no existe la tabla hash, se crea una nueva tabla hash y operación PONH.
Si el campo ya existe en la tabla hash, la operación no es válida.
Si no existe la clave, una nueva tabla hash se crea y ejecuta un comando HSETNX.
Devuelve: establecido con éxito, devuelve 1. Si el campo dado ya existe y no realiza ninguna operación ( diferencia de HAjuste val campo de hash ), devuelve 0.
Ejemplo: val campo de hash hmset
Uso: para simultáneamente una pluralidad de campo-valor (campo - valor) proporcionado a la tabla hash.
Este comando sobrescribe los campos en la tabla hash que ya existe.
Si no existe la tabla hash, se crea una tabla hash vacía, y llevar a cabo la operación HMSET.
Devoluciones: Si el comando se ejecuta correctamente, devuelve OK.
Ejemplo: hkeys de hash
Uso: utilizado para obtener todos los campos en la tabla hash (campo).
Devuelve: una tabla hash en toda la lista de campos (campo). Cuando no existe la clave, devuelve una lista vacía.
127.0.0.1:6379> hmset myhash field1 1 filed2 2 filed3 3
OK
127.0.0.1:6379> hset myhash filed4 4
(integer) 1
127.0.0.1:6379> hsetnx myhash field2 66
(integer) 1
127.0.0.1:6379> hsetnx myhash filed2 666
(integer) 0
127.0.0.1:6379> hkeys myhash
1) "name"
2) "field1"
3) "filed2"
4) "filed3"
5) "filed4"
6) "field2"
127.0.0.1:6379>
2, el valor
Ejemplo: campo de hash hget
Uso: Devuelve el valor hash del campo especificado en la tabla.
Devuelve: Devuelve el valor del campo dado. Si no existe el campo o clave dada, devuelve nil.
Ejemplo: hmget de hash campo1 ..fieldn
Uso: Devuelve la tabla hash, el uno o más valores para un campo determinado. Si el campo especificado no existe en la tabla hash, a continuación, devuelve un valor nulo.
Devuelve: contiene una pluralidad de secuencias tablas dadas valores de campo asociado de petición, y los valores de la tabla de orden como campo especificado.
clave Hvals: Ejemplo
Uso: devuelve una tabla de valores de hash para todos los campos (de campo) de.
Devuelve: los valores de una lista (de campo) en la tabla hash contiene todos los campos. Cuando no existe la clave, una mesa vacía.
clave hexists: Ejemplo
Uso: Especificar el campo para ver el hash existe mesa.
Devuelve: true si la tabla hash que contiene un campo determinado, un retorno. Si la tabla hash no contiene un campo determinado, o la clave no existe, devuelve 0.
Ejemplo: clave hgetall
Uso: se utiliza para devolver una tabla hash, todos los campos y valores. En valor de retorno, la cada nombre de campo inmediatamente después de (nombre de campo) es el valor del campo (valor), por lo que el valor de retorno es el doble de la longitud del tamaño de la tabla hash.
Los campos mesa de campo y los valores de hash en una lista: retornos. Si no existe la clave, devuelve una lista vacía.
Ejemplo: HLEN de hash
Uso: Para ver el número de campos en la tabla hash.
Devuelve: Devuelve el número de campos en la tabla hash, si no existe la clave, devuelve 0.
Ejemplo: HLEN de hash
Uso: Para ver el número de campos en la tabla hash.
Devuelve: Devuelve el número de campos en la tabla hash, si no existe la clave, devuelve 0.
127.0.0.1:6379> hkeys myhash #得到的是标签值
1) "name"
2) "field1"
3) "filed2"
4) "filed3"
5) "filed4"
6) "field2"
127.0.0.1:6379> HVALS myhash 得到标签对应的值
1) "jack"
2) "1"
3) "2"
4) "3"
5) "4"
6) "66"
127.0.0.1:6379> hget myhash name 获取哈希表对应标签的值
"jack"
127.0.0.1:6379> hmget myhash name field1 获取多个标签的值
1) "jack"
2) "1"
127.0.0.1:6379> HEXISTS myhash name
(integer) 1
127.0.0.1:6379> hgetall myhash 得到标签值+对应的值
1) "name"
2) "jack"
3) "field1"
4) "1"
5) "filed2"
6) "2"
7) "filed3"
8) "3"
9) "filed4"
10) "4"
11) "field2"
12) "66"
127.0.0.1:6379> hlen myhash 统计标签个数
(integer) 6
127.0.0.1:6379>
3, la operación
Ejemplo: hash de hincrby campo num
Uso: utilizado como valores de campo en la tabla hash, más el valor de incremento especificado. Incremento puede ser negativo , correspondiente a operación de resta en el campo especificado. Si no existe la tabla clave hash, se crea una nueva tabla hash y ejecuta el comando HINCRBY. Si no existe el campo especificado, a continuación, antes de ejecutar el comando, el campo de valor se inicializa a cero. Un campo para el comando de ejecución HINCRBY valor de cadena almacenada se producirá un error . El valor de esta operación se limita a 64 bits (bit) dentro de la representación digital firmado.
Vuelta: incr después de que el valor del campo.
Ejemplo: hash de hincrbyfloat campo num
Uso: utilizado como valores de campo en la tabla hash, más el valor de incremento especificado. Incremento puede ser negativo , correspondiente a operación de resta en el campo especificado. Si no existe la tabla clave hash, se crea una nueva tabla hash y ejecuta el comando HINCRBY. Si no existe el campo especificado, a continuación, antes de ejecutar el comando, el campo de valor se inicializa a cero. Un campo para el comando de ejecución HINCRBY valor de cadena almacenada se producirá un error . El valor de esta operación se limita a 64 bits (bit) dentro de la representación digital firmado.
Vuelta: incr después de que el valor del campo.
127.0.0.1:6379> hincrby myhash field2 -6
(integer) 60
127.0.0.1:6379> hincrby myhash field2 6
(integer) 66
127.0.0.1:6379> hincrbyfloat myhash field2 6.6
"72.599999999999994"
127.0.0.1:6379>