Redis学习3:hash类型操作、拓展操作、实现购物等

时间:2022-06-30 00:58:51


Redis学习3:hash类型操作、拓展操作、实现购物等


于是有了这一步的改进。

Redis学习3:hash类型操作、拓展操作、实现购物等

  • 一个key开始对很多数据了,如上图所示。

hash类型介绍

首先可以理解成一个redis里面有一个小的redis。同时要注意引入了一个field的名字。

Redis学习3:hash类型操作、拓展操作、实现购物等

  • hash存储结构优化:
  • field数量少,存储结构优化为类数组结构
  • field数量多,存储结构使用HashMap结构

基本操作

Redis学习3:hash类型操作、拓展操作、实现购物等


Redis学习3:hash类型操作、拓展操作、实现购物等


有点map套map的味道。

Redis学习3:hash类型操作、拓展操作、实现购物等

哈希的拓展操作

Redis学习3:hash类型操作、拓展操作、实现购物等

hash类型操作的注意事项

Redis学习3:hash类型操作、拓展操作、实现购物等

电商网站购物车实现

Redis学习3:hash类型操作、拓展操作、实现购物等

  • 那么值能拿到和进行操作吗?

Redis学习3:hash类型操作、拓展操作、实现购物等

业务分析

Redis学习3:hash类型操作、拓展操作、实现购物等

  • 先不需要考虑其他太多东西,应该是可以的。

解决方案如下

Redis学习3:hash类型操作、拓展操作、实现购物等


如下图所示,进行一个购物车的模拟!

Redis学习3:hash类型操作、拓展操作、实现购物等


001的用户 有两个商品g01 g02,然后可以进行添加和删除及查看全部。

购物车进行反思和提升

Redis学习3:hash类型操作、拓展操作、实现购物等


如图所示,进行如下的更进。

Redis学习3:hash类型操作、拓展操作、实现购物等

  • 进行更深一步的反思,如果两个用户都购买了g01商品,那么就会有重复的大量信息。
  • 也就是说 g01:info是都有的,那么可以提取出这些东西,然后专门做一个用来保存商品的信息的哈希。

Redis学习3:hash类型操作、拓展操作、实现购物等


即这些信息作为一个独立之外的hash就可以解决上述问题了,提升访问速度和效率。

Redis学习3:hash类型操作、拓展操作、实现购物等


张三买一次把商品信息加载到公共的库中,李四也买了李四也加一次信息,也会容易浪费。

那么进行一个判定。

上面的指令是:有就不动,没有就动。

Redis学习3:hash类型操作、拓展操作、实现购物等

应用场景-抢购商品

Redis学习3:hash类型操作、拓展操作、实现购物等


解决方案自然就如下了:

Redis学习3:hash类型操作、拓展操作、实现购物等


超卖问题是由于单线程等等原子操作,现在不作考虑的。

Redis学习3:hash类型操作、拓展操作、实现购物等


原则上redis只做数据的存储,业务的操作尽量不要给redis,应该归到业务逻辑层来做,不然业务会太分散,违背原则。

所以综上所述,可以用作抢购商品的用途。

string存储讲究整体性,以读为主。
而hash是以更新为主,方便更新和更改数量。