散列类型(hash)
redis是采用字典结构以键值对的形式存储数据的,而散列类型的键值也是一种字典结构,其存储了字段和字段值的印射,但是字段值只能是字符串,不支持其他数据类型,散列类型不能嵌套其他的数据类型。一个散列类型建可以包含至多2的32次放-1
个字段。
散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的属性,字段值存储属性值。这相当于关系数据库的二维表。但是关系数据库会产生字段冗余,如某个字段只有一行有值,其他行没有。但是redis不会,并不要求每个键都依据此结构存储,完全可以自由地为任何键增减字段而不影响其他键。
命令
1 赋值与取值
HSET key field value 赋值
HGET key field 取值
HMSET key field value[field value...] 多个赋值
HMGET key field [field....] 取多个值
HGETALL key 取所有值
HSET命令方便之处在于不区分插入和更新操作,修改数据是不用事先判断字段是否存在来决定要执行的是插入操作还是更新操作。执行插入操作时,HSET命令返回1,执行更新操作(字段已存在)返回0。
获取多个值
获取所有
2 判断字段是否存在
HEXISTS key field 存在返回1,不存在返回0
3 当字段不存在时赋值
HSETINX key field value 字段存在不执行,不存在就赋值
4 增加数字
HINCREBY key field increment 如果键不存在,命令会自动建立该键并默认field字段执行命令前的值为‘0’
5 删除字段
HDEL key field[field....] 返回删除字段个数
6 只获取字段名或字段值
HKEYS key
HVALS key
7 获取字段数量
HLEN key