redis采用字典结构以键值对的形式存储数据,散列类型(hash)的键值也是一种字典结构,其存储了字段(filed)和字段值得映射,但字段值只能是字符串,不支持其他数据类型,换句话说,散列类型不能嵌套其他的数据类型。一个散列类型键值可以包含之多2^32-1个字段。
散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。例如要存储ID为2的汽车对象,可以分别使用名为color、name、price的三个字段来存储该汽车的颜色、名称、价格。结构如下图
使用散列类型存储汽车对象的结构主要命令:
1、赋值与取值
HSET key field value 给字段赋值
HGET key field 获得字段的值
HMSET key field value [field value ...] 同时设置多个字段的值
HMGET key field [field ...] 同事获得多个字段的值
HGETALL key 获得键中所有字段的值
HSET命令不区分插入和更新操作,这意味着修改数据时不用事先判断字段是否存在来决定要执行的是插入还是更新操作。当执行的使插入操作HSE命令返回1,当执行的使更新操作HSET返回0.
2、判断字段是否存在
HEXISTS key field 命令用来判断一个字段是否存在。如果存在则返回1,否则返回0(如果键不存在也会返回0)。
3、当字段不存在时赋值
HSETNX key field value
HSETNX与HSET命令相似,区别在于如果字段已经存在,HSETNX命令将不执行任何操作。
4、增加数字
HINCRBY key field increment
HINCRBY与INCRBY命令类似,可以是字段值增加指定的整数。
5、删除字段
HDEL key field [field ...] 删除一个或多个字段,返回值是被删除的字段个数。
6、只获得字段名或字段值
HKEYS key 获取键中所有字段的名字
HVALS key 获取建中所有字段的值
7、获得字段数量
HLEN key
网友评论