分布式技术面试题之一

单点登录流程

single-login-process

购物车实现流程

购物车与用户的关系:

一个用户必须对应一个购物车(用户不管购买多少商品,都会存放在属于自己的购物车中)

购物车相关的操作有哪些:

  • 添加购物车
    • 用户未登录状态
      • 购物车数据添加到什么地方?
        • 1)Reids
        • 2)Cookie,若浏览器禁用了 Cookie,可以存储在浏览器的 Local Storage
    • 用户已登录状态
      • 购物车数据添加到什么地方?
        • 1)Reids
        • 2)数据库
        • 3)Redis + 数据库
  • 展示购物车
    • 用户未登录状态
      • 直接从 Redis 或者 Cookie 中取得数据来展示
    • 用户已登录状态
      • 必须显示数据库 + Redis + Cookie 中的全部购物车数据

Redis 中使用的数据类型为散列(Hash),KEY 为 user:userId:cart,通过 Hset(key, productId, value) 来添加用户的购物车数据。