Redis入门之散列(Hash)类型

Redis提供了散列类型,散列的值是一个field和value的映射表,而获取散列的键与上一节中字符串类型中的键一样.
如下图,描述了Redis中散列类型:
Redis入门之散列(Hash)类型_第1张图片
键名为: car:2
字段名分别有:color、name、price
对应的字段名为:白色、奥迪、90万
通过上图可以看出:字段和字段值构成了一个映射表,通过键可以对这个映射表进行一些操作.下面我们来看一下Redis中关于散列的命令:

1. 赋值与取值

HSET key field value
HGET key field
HMSET key field value [field value ...]
HMGET key field [field ...]
HGETALL key

HSET命令的作用是给字段赋值,HGET命令是用来获得字段的值.用法如下:
在这里插入图片描述
HSET命令不区分是插入操作还是更新操作,更新数据时不需要判断字段是否存在,若字段不存在,会自动创建该字段,并将该字段的值设置成为要设置的值,当字段存在时,则更新字段值.当不存在时,HSET还会自动创建它.
HMSET命令可以同时设置多个字段的值,
HMGET命令可以同时获得多个字段的值,例如:
Redis入门之散列(Hash)类型_第2张图片

2. 判断字段是否存在

HEXISTS key field

HEXISTS命令用来判断一个字段是否存在, 如果存在则范湖1,否则返回0(如果键不存在也会返回0),用法如下:
Redis入门之散列(Hash)类型_第3张图片

3. 当字段不存在时赋值

HSET key field value

HSETNX命令与HSET命令类似,区别在于,如果字段已经存在,HSETNX命令将不会执行任何操作.例如:
Redis入门之散列(Hash)类型_第4张图片

可以看到,第一次创建字段是可以正常执行的,返回值为1,当第二次想要设置同样的字段的时候的时候,由于name字段已经存在,所以不会执行.

4. 增加数字

HINCRBY key field value

散列中没有HINCR命令,但是有HINCRBY命令,通过HINCRBY key field 1来实现.例如:
Redis入门之散列(Hash)类型_第5张图片
可以看出,当增加的不是整数时,会报错,当增加的字段不存在时,HINCRBY会自动创建该字段,并初始化为0,然后加上要增加的数.命令成功执行后返回1,例如:
Redis入门之散列(Hash)类型_第6张图片

5. 删除字段

HDEL key field [field ...]

HDEL命令可以删除一个或多个字段,返回值是被删除的字段的个数,例如:
Redis入门之散列(Hash)类型_第7张图片

6. 只获取字段名或字段值

有时仅仅需要获取键中的所有字段的名字而不是字段名,有时是获取字段中所有的字段值

HKEYS key
HVALS key

用法如下:
Redis入门之散列(Hash)类型_第8张图片

7. 获取字段数量

获取键对应的值中含有的字段数量.

HLEN key

Redis入门之散列(Hash)类型_第9张图片

参考资料:《Redis入门指南》–李子骅

你可能感兴趣的:(redis)