购物车列表设计

三、缓存结构设计

  1. 购物车数量

数据结构 string

redisKey : cart_size${userId}

value:购物车数量

缓存时间 15天

  1. 数据库用户购物车列表

数据结构 string

redisKey : cart${userId}

value:数据库用户购物车列表json

缓存时间 15天

  1. 用户排序后购物车商品列表,用于下一页分页时进行分页切割查询分页skuId集合,时效时间1小时,主要防止用户在购物车列表停留时间比较久查询下一页,如果停留时间超过下一页将重置用户排序后购物车商品列表查询

数据结构 string

redisKey : cart_order_sku:地区码:用户ID ,如果地区码没有选择默认NO_AREA

value:购物车缓存排序商品项列表json

缓存时间 1小时

  1. 用户地址购物车列表关系,用于加购物车时清理用户选择了哪些地区码对应的购物车列表数据

数据结构 Set

redisKey : cart_area_shop:用户ID

field : townCode 地区码

value:当前时间戳

缓存时间 不过期

5、用户购物车店铺结果显示列表

数据结构 string

redisKey : 购物车排序后缓存key cart_order_shop:用户ID:地区码,如果地区码没有选择默认NO_AREA

value:用户购物车店铺结果显示列表json

缓存时间 平时3分钟、活动大促高流量期间10分钟

6、用户购物车商品结果显示列表

数据结构 string

redisKey : 购物车排序后缓存key cart_order_shop:用户ID:地区码,如果地区码没有选择默认NO_AREA

value:用户购物车商品结果显示列表json

缓存时间 平时实时查询、活动大促高流量期间10分钟

1、购物车列表请求时序图

2、责任链+模版方法的组合设计

购物车分页商品列表查询链

购物车店铺列表查询链

基础组件设计说明

1、AbstractProcessChain抽象请求处理链定义方法链路执行

execute方法,封装入参CartParamBO,执行结果CartResultBO 用于整个调用链路执行

2、AbstractInitProcessChain:抽象异步初始化数据入参请求处理链

定义initParamBO抽象方法 拓展功能支持多线程异步并发请求服务进行CartResultBO查询组装

3、CartShopListQueryChain: 购物车店铺列表处理器链

通过实现InitializingBean接口进行Processor组件调用链路初始化,以及每个组件逻辑处理

5、*Processor具体处理链逻辑组件

1、CartShopProcessor:店铺信息处理逻辑组件 对接店铺信息查询,店铺信息组装

2、CartProductProcessor 商品信息逻辑组件

3、CartShopProcessor 店铺信息、店铺销售区域信息查询组装,销售区域校验处理、店铺状态校验处理

3、接口适配器模式设计,将对接的依赖服务进行接口层适配隔离业务逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值