{T}

购物车

购物车数据存储形式

无须登录、无须查库、保存在浏览器端

优点:性能好、访问快,没有和数据库交互

缺点:换电脑购物车数据会丢失。电脑被其他人登录,隐私

Session

用户登录后,购物车数据放入用户会话

优点:初期性能较好,访问快

缺点: session 基于内存,用户量庞大影响服务器性能。只能存在与当前会话,不适用集群与分布式系统

数据库

用户登录后,购物车数据存入数据库

优点:数据持久化,可在任何地点任何时间访问

缺点:频繁读写数据库,造成数据库压力

Redis

用户登录后,购物车数据存入 redis 缓存

优点:

  • 数据持久化,可在任何地点任何时间访问
  • 频繁读写只基于缓存,不会造成数据库压力
  • 适用于集群与分布式系统,可扩展性强

版本差异(购物车设计 → 当前)

特性传统方案当前实践
未登录Cookie 存储不变;或 localStorage + 服务端合并
已登录数据库表不变;Redis 缓存购物车对象提升性能
跨端同步登录后合并 Cookie/本地购物车到服务端
一致性直接写库分布式事务成本高,最终一致 + 幂等扣库存

购物车数据模型(用户维度、商品维度、数量、选中状态)与合并策略不随版本变化;工程重点是缓存与最终一致性设计。