0
点赞
收藏
分享

微信扫一扫

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


Redis学习3:hash类型操作、拓展操作、实现购物等_存储结构


于是有了这一步的改进。

Redis学习3:hash类型操作、拓展操作、实现购物等_解决方案_02

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

hash类型介绍

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

Redis学习3:hash类型操作、拓展操作、实现购物等_数据库_03

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

基本操作

Redis学习3:hash类型操作、拓展操作、实现购物等_存储结构_04


Redis学习3:hash类型操作、拓展操作、实现购物等_存储结构_05


有点map套map的味道。

Redis学习3:hash类型操作、拓展操作、实现购物等_存储结构_06

哈希的拓展操作

Redis学习3:hash类型操作、拓展操作、实现购物等_解决方案_07

hash类型操作的注意事项

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

电商网站购物车实现

Redis学习3:hash类型操作、拓展操作、实现购物等_存储结构_09

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

Redis学习3:hash类型操作、拓展操作、实现购物等_数据库_10

业务分析

Redis学习3:hash类型操作、拓展操作、实现购物等_存储结构_11

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

解决方案如下

Redis学习3:hash类型操作、拓展操作、实现购物等_数据库_12


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

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


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

购物车进行反思和提升

Redis学习3:hash类型操作、拓展操作、实现购物等_数据库_14


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

Redis学习3:hash类型操作、拓展操作、实现购物等_解决方案_15

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

Redis学习3:hash类型操作、拓展操作、实现购物等_解决方案_16


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

Redis学习3:hash类型操作、拓展操作、实现购物等_解决方案_17


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

那么进行一个判定。

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

Redis学习3:hash类型操作、拓展操作、实现购物等_解决方案_18

应用场景-抢购商品

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


解决方案自然就如下了:

Redis学习3:hash类型操作、拓展操作、实现购物等_解决方案_20


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

Redis学习3:hash类型操作、拓展操作、实现购物等_解决方案_21


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

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

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


举报

相关推荐

redis------Hash操作(字典)

0 条评论