hash类型的应用场景 —— Redis实战经验

  • 时间:
  • 浏览:3
  • 来源:幸运飞艇APP下载_幸运飞艇APP官方

  原文地址https://www.cnblogs.com/pangzizhe/p/106574001.html

hash类型的应用场景 —— Redis实战经验

  

  hash类型的常用命令可参考http://www.runoob.com/redis/redis-hashes.html

  在介绍string类型的应用场景时有所介绍,string + json也是存储对象的某种生活依据,没办法 存储对象时,到底用string + json还是用hash呢?

  hash类型是有另四个 string类型的field和value的映射表,每个 hash 还不可不能不能存储 232 - 1 键值对(40多亿),hash类型主要有以下应用场景。

  1. 购物车

  加入string类型的应用场景后的思维导图如下。

  当然,不常变化的属性存储在hash类型里也没办法 问题图片图片,比如商品名称、商品描述、上市日期等。但会 ,当对象的某个属性就有基本类型或字符串时,使用hash类型就还不可不能不能手动进行多样化序列化,比如,商品的标签是有另四个 标签对象的列表,商品可领取的优惠券是有另四个 优惠券对象的列表(如下图所示)等,即使以coupons(优惠券)作为field,value想存储优惠券对象列表也还是要使用json来序列化,原来句子序列化工作就太繁琐了,不如直接用string + json的依据存储商品信息来的简单。

  综上,一般对象用string + json存储,对象中某些频繁变化的属性抽出来用hash存储。

速率单位 很高 高

容量 低 低

灵活性 低 高

序列化 简单 多样化

  当对象的某个属性还不可不能不能频繁修改时,不适合用string+json,之后 它不足灵活,每次修改都还不可不能不能重新将整个对象序列化并赋值,之后 使用hash类型,则还不可不能不能针对某个属性单独修改,没办法 序列化,某些还不可不能不能修改整个对象。比如,商品的价格、销量、关注数、评价数等之后 时不时所处变化的属性,就适合存储在hash类型里。

  hash类型的(key, field, value)的形态与对象的(对象id, 属性, 值)的形态类似,也还不可不能不能用来存储对象。

  以用户id为key,商品id为field,商品数量为value,恰好构成了购物车的四个帕累托图,如下图所示。

  2. 存储对象

  某种生活存储依据的对比如下表所示。