Introducción
Redis hash es una colección de pares clave-valor
Redis hash es una tabla de mapeo de campo y valor de tipo cadena, el hash es especialmente adecuado para almacenar objetos
Similar a Map<String, Object> en Java
comando básico
comando hset
#给<key>集合中的<field>键赋值<value>
hset <key> <field> <value>
#写个demo
hset user:001 id 1
hset user:001 name zhangsan
#注意:如果赋值已经存在的field,则覆盖旧的值
obtener comando
#从<key1>集合<field>取出value
hget <key1> <field>
#写个demo
hget user:001 id #返回1
hget user:001 name #返回zhangsan
comando hmset
##批量设置hash的值
hmset <key1> <field1> <value1> <field2> <value2>...
#写个demo
hmset user:002 id 2 name lisi age 18 #{user:002:{id:2,name:lisi,age:18}}
comando hexistas
hexists <key1><field>
#写个demo
hexists user:001 age #检查user:001有没有对应field为age
comando de teclas h
#列出该hash集合的所有field
hkeys <key>
#写个demo
hkeys user:001
#返回结果
id、name、age
Comando Hvals
#列出该hash集合的所有value
hvals <key>
Comando de enlace
#为哈希表key中的域field的值加上增量1,这个field的数据类型必须为integer,且increment必须填写,不可缺失
hincrby <key> <field> <increment>
#写个demo
hincrby user:002 age 3 #给user:002的年龄增加3
comando hsetnx
#将哈希表中的域field的值设置为value,当且仅当域field不存在
hsetnx <key> <field> <value>
#下面这个语句赋值会失败,因为user:002的age已经存在
hsetnx user:002 age 18
#与hset的区别:
hset对已经存在的field赋值会覆盖旧的值
La estructura de datos utilizada por Hash
Hay dos estructuras de datos correspondientes al tipo Hash: ziplist (lista comprimida) y hashtable (tabla hash). Cuando la longitud del valor del campo es corta y el número es pequeño, use ziplist, de lo contrario use hashtable