概述
Redis中hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis存储hash可以看成是String key 和String value的map容器. 也就是说把值看成map集合.
它它特别适合存储对象相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间并方便存取整个对象
redis中的数据如下
key | value
u1 | name zs
| age 18
------------------------------
u2 | name ls
| age 19
Map<String,Map>
应用场景
用一个对象来存储用户信息,商品信息,订单信息等等。
常见命令
命令 | 命令描述 |
---|---|
hset key filed value | 将哈希表 key 中的字段 field 的值设为 value |
hmset key field1 value1 [field2 value2]…(重点) | 同时将多个 field-value (字段-值)对设置到哈希表 key 中 |
hget key filed | 获取存储在哈希表中指定字段的值 |
hmget key filed1 filed2 (重点) | 获取多个给定字段的值 |
hdel key filed1 [filed2] (重点) | 删除一个或多个哈希表字段 |
hlen key | 获取哈希表中字段的数量 |
del key | 删除整个hash(对象) |
HGETALL key (重点) | 获取在哈希表中指定 key 的所有字段和值 |
HKEYS key | 获取所有哈希表中的字段 |
HVALS key | 获取哈希表中所有值 |
hmset u1 name caihao sex girl age 18 //设置多个属性(对象)
hmget u1 name age//获取多个key对应的value的某个属性
hset u1 age 19//修改某个key对应的value的某个属性
hkeys u1//获取u1对应的value所有属性
应用举例
存储商品信息(简而言之,一个整体里面有多个属性就可以用hash存)
- 存储商品对象信息【商品id、商品名称、商品价格】
HMSET items:1001 id 3 name apple price 999.9
小结
- Hash 是键值对存在的 类似Java里面的HashMap
- 特别适合存对象, 方便操作对象里面的某一个字段