存储系统实战-1
购物车如何设计
购物车存储时需要考虑清楚的问题
- 1.用户没登录,在浏览器中加购,关闭浏览器再打开,刚才回购的商品还在吗?(存在)
- 2.用户没登录,在浏览器中回购,然后登录,刚才回购的商品还在不在?(存在)
- 3.关闭浏览器再打开,上一步回购的商品还在不在?(不存在)
- 4.再打开手机,用相同的用户登录 ,第二步回购的商品还在不在?(存在)
暂存购物车、用户购物车
购物车设计原则
- 如果未登录,需要临时暂存购物车的商品;
- 用户登录时,把暂存购物车的商品合并到用户购物车中,并且清除暂存购物车;
- 用户登陆后,购物车中的商品,需要在浏览器、手机 APP 和微信等等这些终端中都保持同步。
暂存购物车设计
一般的设计都会将这批数据存储在客户端,采用Session、Cookie、LocalStorge,APP的本地存储原理也是类似
- Session的缺陷:保留时间短
- Cookie:每次交互都需要把数据给带上,存储上限4K
- LocalStorage:只能由客户端来访问,
用户购物车设计
使用关系型数据库来存储购物车数据,如果追求性能或者高开发,也可以选择Redis