未进化的程序猿
人生最苦痛的是梦醒了无路可走。做梦的人是幸福的;倘没有看出可走的路,最要紧的是不要去惊醒他。鲁迅

1、业务场景-电商网站购物车设计与实现 

业务分析

1)、仅分析购物车的redis存储模型 添加、浏览、更改数量、删除、清空

2)、购物车于数据库间持久化同步(不讨论)

3)、购物车于订单间关系(不讨论)

  • 提交购物车:读取数据生成订单
  • 商家临时价格调整:隶属于订单级别

4)、未登录用户购物车信息存储(不讨论)

  • cookie存储

解决方案

1)、以客户id作为key,每位客户创建一个hash存储结构存储对应的购物车信息

2)、将商品编号作为field,购买数量作为value进行存储

3)、添加商品:追加全新的field与value

4)、浏览:遍历hash

5)、更改数量:自增/自减,设置value值

6)、删除商品:删除field

7)、清空:删除key 

8)、此处仅讨论购物车中的模型设计

9)、购物车与数据库间持久化同步、购物车与订单间关系、未登录用户购物车信息存储不进行讨论

 2、当前设计是否加速了购物车的呈现 

 

3、hsetnx key field value:表示当哈希表结构里面有该字段值的时候,不会修改值;当哈希表结构里面没有该字段值的时候,会把它添加上去

hsetnx key field value

4、业务场景

 解决方案

1)、以商家id作为key 

2)、将参与抢购的商品id作为field

3)、将参与抢购的商品数量作为对应的value

4)、抢购时使用降值的方式控制产品数量 

5)、实际业务中还有超卖等实际问题,这里不做讨论

 Tips 5:

redis 应用于抢购,限购类、限量发放优惠卷、激活码等业务的数据存储设计 

 

posted on 2020-12-11 19:04  甘茂旺  阅读(306)  评论(0编辑  收藏  举报