Hash类型是String类型的key和value的映射表,或者说一个String集合。它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里比存储在String类型里占用更少的内存空间,并方便存取整个对象。
Hashl类型在Redis的应用如下:
1.存取值的语法:
//存值
//含义是hset是hash集合,user 是集合名字,name 是字段名,chd为其值
hset user name chd
//取值
hget user name
2.批量存储/获取多个键值对
//批量存储
hmset user name chd password 123456
//批量获取
hmget user name password
3.判断key是否存在
//hexists 是否存在key,如果存在返回1,不存在返回0
hexists user name
4.获取hash中的键值对数量
hlen user
5.删除
//根据key删除其对应的键值对
hdel user name
//删除其hash集合
del user
6.获取hash中的key或者value值
//获取集合的所有key
hkeys user
//获取hash集合的所有value
hvals user
7.获取hash里所有的key和value
hgetall user
8.hash中不存在的的字段赋值
// 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
//如果字段已经存在于哈希表中,操作无效。
Hsetnx user address dalian
9.hash中的字段值加上\减去指定增量值。
增量也可以为负数,相当于对指定字段进行减法操作。
如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。
本操作的值被限制在 64 位(bit)有符号数字表示之内。
//对指定key增加指定的值
Redis:0>hget user age
"18"
Redis:0>hincrby user age 2
"20"
Redis:0>