开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情
这篇文章我们来记录一下redis中Hash类型,Hash结构是由字符类型的字段和value组成的哈希映射表结构,它非常类似于表格结构;Hash结构特别适合存储对象,一个[field:value]可以看作是表格中的一条数据记录,而一个key可以对应多条数据。
下面我们举一个例子,这里以person为key:
下面我们来对Hash结构的命令做一些实例演示:
HSET命令
hset key field value
示例:
redis> hset person name zou
1
这个命令每次只能创建一个属性,如果想要一次创建多个属性值,可以使用下面这个命令;
HMSET命令
hmset key field1 value1 field2 value2 ......
示例:
redis> hmset person name zou weight 60 height 170
OK
这个命令可以一次性设置多个属性;
HGET命令
hget key field
示例:
redis> hset person age 26
1
redis> hget person age
26
通过hget命令可以查询Hash结构中指定属性值;
HMGET命令
hmget key field1 field2 .....
示例:
redis> hmget person name height
0 zou
1 170
查询person下两个属性name、height对应的值;
HGETALL命令
hgetall key
示例:
redis> hgetall person
name zou
weight 60
height 170
age 26
查询指定key下所有[field:value];
HEXISTS命令
hexists key field
示例:
redis> hexists person name
1
redis> hexists person nickname
0
判断person中指定的field是否存在;
HKEYS命令
hkeys key
示例:
redis> hkeys person
0 name
1 weight
2 height
3 age
查询person下所有的属性名;
HVALS命令
hvals key
示例:
redis> hvals person
0 zou
1 60
2 170
3 26
查询person下所有属性值;
HLEN命令
hlen key
示例:
redis> hlen person
4
查询person下的属性数量;
HDEL命令
hdel key field1 field2 ......
示例:
redis> hdel person name age
2
redis> hgetall person
weight 60
height 170
删除person下指定的name、age属性;
HSETNX命令
hsetnx key field value
示例:
redis> hgetall person
weight 60
height 170
redis> hsetnx person name zou
1
redis> hsetnx person weight 50
0
redis> hgetall person
weight 60
height 170
name zou
当field不存在时才能创建成功,否则就创建失败;
HINCRBY命令
hincrby key field step
示例:
redis> hget person weight
60
redis> hincrby person weight 10
70
redis> hget person weight
70
给person下指定weight属性值做整数增量运算
HINCRBYFLOAT命令
hincrbyfloat key field step
示例:
redis> hget person height
170
redis> hincrbyfloat person height 10.5
180.5
redis> hget person height
180.5
给person下指定height属性值做浮点数增量运算;