1.介绍
(1).hash也是一种字典结构,存储了字段(field)和字段值(value)的映射,字段值只能是字符串,不支持其他类型。
(2).适合存储对象,对象列表和ID构成键名,字段表示对象的属性,字段值存储属性值。
(3).每个键的字段都可以不一样,节省内存,很有优势。
2.命令
(1).单个赋值:hset key field value (注意:h 开头)
(2).单个取值:hget key field value (注意: h 开头)
(3).不区分插入还是更新操作,有键就更新,没有就创建
(4).多个赋值:hmset key field value [field value …](注意:hm开头)
(5).多个取值:hmget key field [field …]
(6).取所有的字段和值:hgetall key
(7).判断字段是否存在:hexists key field
(8).字段存在不改变,不存在的时候赋值,原子操作,不用担心竞态条件。
(9).增加数字:hincrby key field increment(值必须是数字)
(10).删除字段: hdel cat:2 price name
3.实践
(1).存储文章数据
1 存储文章数据,文章对象序列化后使用一个字符串类型键储存, 2 无法对单个字段进行读写操作支持,从而产生竞态条件,如两个客户端同时获取并反序列化 3 某个文章数据,分别修改不同属性后存入,显然后面存入的数据会覆盖前一个修改的数据。 4 可以使用 hash 组合多个字符串来存储一篇文章,解决这个问题。
4.命令拾遗
(1).获取所有的 key 或者 value : hkeys key 和hvals key(注意:val不是value)
(2).获得字段数量:hlen key