Redis提供了散列类型,散列的值是一个field和value的映射表,而获取散列的键与上一节中字符串类型中的键一样.
如下图,描述了Redis中散列类型:
键名为: car:2
字段名分别有:color、name、price
对应的字段名为:白色、奥迪、90万
通过上图可以看出:字段和字段值构成了一个映射表,通过键可以对这个映射表进行一些操作.下面我们来看一下Redis中关于散列的命令:
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命令可以同时获得多个字段的值,例如:
HEXISTS key field
HEXISTS命令用来判断一个字段是否存在, 如果存在则范湖1,否则返回0(如果键不存在也会返回0),用法如下:
HSET key field value
HSETNX命令与HSET命令类似,区别在于,如果字段已经存在,HSETNX命令将不会执行任何操作.例如:
可以看到,第一次创建字段是可以正常执行的,返回值为1,当第二次想要设置同样的字段的时候的时候,由于name字段已经存在,所以不会执行.
HINCRBY key field value
散列中没有HINCR命令,但是有HINCRBY命令,通过HINCRBY key field 1来实现.例如:
可以看出,当增加的不是整数时,会报错,当增加的字段不存在时,HINCRBY会自动创建该字段,并初始化为0,然后加上要增加的数.命令成功执行后返回1,例如:
HDEL key field [field ...]
HDEL命令可以删除一个或多个字段,返回值是被删除的字段的个数,例如:
有时仅仅需要获取键中的所有字段的名字而不是字段名,有时是获取字段中所有的字段值
HKEYS key
HVALS key
获取键对应的值中含有的字段数量.
HLEN key
参考资料:《Redis入门指南》–李子骅