- hash的value也是一个健值对,用于存储对象{name:"tom",age:17} # 命令 ## 设置 - 设置单个值 ``` hset 键 值的名称 值 ``` - 设置多个值 ``` hmset 键 值的名称1 值1 值的名称2 值2 ... ``` ## 获取 - 获取一个属性的值 ``` hget 键 值的名称 ``` - 获取多个属性的值 ``` hmget 键 值的名称 值的名称 ... ``` - 获取所有属性和值 ``` hgetall 键 ``` - 获取所有的属性 ``` hkeys 键 ``` - 获取所有值 ``` hvals 键 ``` - 返回包含属性的个数 ``` hlen 键 ``` ## 其他 - 判断属性是否存在 - 存在返回1,不存在返回0 ``` hexists 键 值的名称 ``` - 删除属性及值 ``` hdel 键 值的名称 值的名称 ... ``` - 返回值的字符串的长度 ``` hstrlen 键 值的名称 ``` # 应用场景 - 会员信息场景 ```java # 获取最新的会员id incr user:id # 存储会员user:1的信息 hset user:1 name tom age 18 sex 1 # 获取user:1的全部信息 hgetall user:1 # 获取user:1的name属性 hget user:1 name # 删除指定用户的指定属性 hdel user:1 name # 删除用户 del user:1 ``` - 购物车场景 ```php # 给user:1的购物车中添加5个商品product:1,价格为12 hmset cat:user:1 product:1 5 priece:1 12 # 给user:1的购物车中添加5个商品product:2,价格为20 hmset cat:user:1 product:2 5 priece:2 20 # 获取用户user:12购物车中的所有商品的数量和价格 hgetall cat:user:1 # 给user:1购物车中的商品product:1数量增加1 hinceby cat:user:1 product:1 1 ```