Redis 数据类型--Hash

zhangtianshun 2020-04-09

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下)

相关推荐