Redis 入门 3.3 散列类型
3.3.1 介绍
散列类型(hash)的键值也是一种字典结构,其储存了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据类型,换句话说,散列类型不能嵌套其他的数据类型。一个散列类型键可以包含至多\(2^{32}\) -1个字段。
3.3.2 命令
-
赋值与取值
HSET key field value HGET key field HMSET key field value [field value ...] HGETALL key
HSET 命令用来给字段赋值,而 HGET 命令用来获得字段的值。
HSET 命令的方便之处在于不区分插入和更新操作,这意味着修改数据时不用事先判断字段是否存在来决定要执行的是插入操作(update)还是更新操作(insert)。当执行的是插入操作时(即之前字段不存在)HSET 命令会返回1,当执行的是更新操作时(即之前字段已经存在)HSET 命令会返回0。更进一步,当键本身不存在时,HSET命令还会自动建立它
当需要同时设置多个字段的值时,可以使用HMSET命令。
HMSET key field value field2 value2
响应地,HMGET 命令可以同时获得多个字段的值
HMGET car price name
如果想获取键中所有字段和字段值却不知道键中有哪些字段时,应该使用HGETALL命令。
HGETALL car
-
判断字段是否存在
HEXISTS key field
HEXISTS 命令用来判断一个字段是否存在。如果存在则返回1,否则返回0(如果键不存在也会返回0)。
-
当字段不存在时赋值
HSETNX key field value
HSETNX 命令与HSET命令类似,区别在于如果字段已经存在,HSETNX 命令将不执行任何操作。HSETNX 命令是原子操作,不用担心竞态条件
-
增加数字
HINCRBY key field increment
如果键不存在,HINCRBY 命令会自动建立并默认字段在执行命令前的值为“0”。命令的返回值是增值后的字段值。
-
删除字段
HDEL key field [field ...]
HDEL 命令可以删除一个或多个字段,返回值是被删除的字段的个数