Redis数据类型—Hash类型

93 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情

这篇文章我们来记录一下redisHash类型,Hash结构是由字符类型的字段和value组成的哈希映射表结构,它非常类似于表格结构;Hash结构特别适合存储对象,一个[field:value]可以看作是表格中的一条数据记录,而一个key可以对应多条数据。

下面我们举一个例子,这里以personkey

image-20221203165115697.png

下面我们来对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下两个属性nameheight对应的值;

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下指定的nameage属性;

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属性值做浮点数增量运算;