Hash
Hash的常用操作:
HSET key filed value //存储一个hash表的key值
HSETNX key filed value //存储一个不存在的hash表的key的值,注意:是key或者filed不存在时返回成功
HMSET key filed value [filed value ...] // 在一个hash表中存多个filed键值对
HGET key filed //获取hash表的filed键值
HMGET key filed filed ... //批量获取一个hash表中的filed键值
HDEL key filed field ... //批量删除hash表中的键值
HLEN key //获取hash表中filed的数量
HGETALL key //返回hash表中所有的filed键值
HINCRBY key filed increment //给hash中的filed 键值加1
引用场景举例:
1、利用如下方式存储用户信息
HMSET user {userid}:name value {userid}:age value
存储:HMSET user 1:name fly 1:age 18
查看:HMGET user 1:name 1:age
2、电商购物车
1、以用户id为key
2、商品id为filed
3、商品数量为value
购物车操作:
1)添加商品:hset cart:1001 10008 1(1001 为用户id ,10008 为商品id,添加一个到购物车中)
2)增加数量:hincrby cart:1001 10008 1
3)商品总量:hlen cart:1001 10008
4)删除商品:hdel cart:1001 10008
5)获取购物车所有商品:hgetall cart:1001
优点:
1)同类数据归类整合存储,方便数据管理
2)相比string操作消耗的内存和CPU更小
3)相比string存储更加节省空间
缺点:
1)过期功能不能用在filed 上,只能用在key上
2)redis集群架构下不适合大规模使用(例如几亿的用户数据不可能都放到一个user下)
原文地址:https://www.cnblogs.com/flycc/p/12670558.html