如何解决购物车内存大小的问题
(1)问题分析
主要考核商城系统购物车存储方式,以及数据量问题
Cart
String sellerId;
String sellerName;
List orderItemList
未登录:cookie
已登录:redis
(2)核心答案讲解
1)Cookie方式
优点:购物车信息存储在客户端,不占用服务器资源,基本可以到达持久化存储。
缺点:Cookie有大小的限制,不能超过4K,而且不够安全。
2)Session方式
优点:购物车信息保存在服务端,可以保存1M 信息。
缺点:对于大型网站会占有过多的服务器内存资源,造成服务器压力过大。Session保存的信息会在用户退出登录后丢失。用户下次登录,购物车中商品信息丢失,用户只能从新选择。
3)redis存储
优点: 持久化存储,效率高。
缺点: 成本和维护增加。
4)数据库存储
优点:持久化存储,可以分析用户购买行为。
缺点: 网站速度变慢,成本和维护增加。
5)localStorage
优点:弥补了cookie4K的问题 支持5M
缺点:每个浏览器的支持是不一样的,前端js写很多逻辑代码
(3)问题扩展
数据库存储,不会像cookie那种容易丢失,也没有客户端的限制,你想怎么存,存多少都行,当数据太多我们可以进行分表分库处理。
(4)结合项目中使用
品优购项目中的购物车使用redis+Cookie