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 应用于抢购,限购类、限量发放优惠卷、激活码等业务的数据存储设计