一、商品详情页技术

电商用到的java技术 电商技术有哪些_Redis

 

技术需求分析

存储数据维度:固定结构数据 、非固定结果数据 、富媒体数据

 

读取流量维度:经常变化数据、非经常变化数据

 

存储数据维度

固定结构数据:商品主标题、副标题、价格等属性,存储到MySQL

非固定结构数据:商品参数(例如电脑内存大小、手机的屏幕尺寸、酒的度数、口红的色号等),KV存储(MySQL Json列,MongoDB)

富媒体数据:对象存储,分布式文件

 

读取流量维度

  • 存储到mysql的数据,设计加一层缓存,应对高并发读
  • 非经常变化的数据,静态化上CDN
  • 经常变化的数据,例如价格,ajax接口获取,读取价格调整的副本记录
  • 富媒体数据,对象存储为CDN源站,用户通过CDN访问

 二、购物车存储设计

购物车系统的主要功能包括:加购、购物车列表页和结算下单。核心的实体就只有一个“购物车”实体,它至少要包括:SKUID、数量、加购时间和勾选状态这几个属性。

在给购物车设计存储时,为了确保购物车内的数据在多端保持一致,以及用户登录前后购物车内商品能无缝衔接,除了每个用户的“用户购物车”之外还要实现一个“暂存购物车”保存用户未登录时加购的商品,并在用户登录后自动合并“暂存购物车”和“用户购物车”。

暂存购物车存储在客户端浏览器或者 App 中,可以选择存放到 Cookie 或者 LocalStorage 中。用户购物车保存在服务端,可以选择使用 Redis 或者是 MySQL 存储,使用 Redis 存储会有更高的性能,可以支撑更多的并发请求,使用 MySQL 是更常规通用的方式,便于应对变化,系统的扩展性更好。

 

MySQL存储方案

电商用到的java技术 电商技术有哪些_Redis_02

Redis存储方案

 

电商用到的java技术 电商技术有哪些_Redis_03

 

KEY:用户ID  FIELD:商户ID 

方案名

可靠性

性能

方案选择

MySQL存储

支持丰富查询和事务机制,业务变更需支持统计今天加购的商品总数等,MySQL容易实现


推荐

Redis存储


异步刷盘,服务器断电,存在丢数据情况风险

可靠性要求不用那么苛刻,购物车丢了几件商品,问题也不大

 

高出1个量级