淘淘
目录
1.传统购物车实现方式
2.淘淘商城购物车实现方式
2.1购物车如何表示?
2.2怎么将购物车存入cookie中?
2.3使用哪种redis数据结构存放购物车?
1.传统购物车实现方式
用户将商品添加到购物车时,判断用户是否登录,如果已经登录将购物车放入session中
存在的问题:
- 购物车存在session当中,如果session销毁,购物车就没有了。
给购物车做持久化
- 用户未登录的时候不能添加购物车
未登录的状态下,可以把购物放在cookie中
持久化,需要用到数据库
b、redis数据库(读写速度快)
- session无法共享,无法进行水平扩展
这里我们不使用这种方法。
2.淘淘商城购物车实现方式
对于未登陆用户,将购物车放到cookie中。对于已登陆用户将购物车放入redis缓存中。可以实现,用户未登录或者登录状况下的添加购物车(并进行购物车的增删查改)
实现上述方案有一些疑难点:
2.1购物车如何表示?
由于购物车中的商品属性与TbItem类似,所以可以将TbItem当做购买的商品。TbItem中的num属性原用作后台管理系统的商品库存数量,在这里可以将num属性用作购买商品的数据,所以List<TbItem>就是一个购物车。一个用户对应一个购物车。
2.2怎么将购物车存入cookie中?
对于存入cookie中,我们可以自定义个key,然后将购物车List<TbItem>转为json串,存到cookie。
2.3使用哪种redis数据结构存放购物车?
由于一个用户对应一个购物车,一个购物车购买多个商品。相当于用户可以购买多个商品
对于存入redis中,我们有两种实现方案:
1.方案一:
使用String类型,将用户userId作为key,将购物车List<TbItem>转为json串作为value。
2.方案二:
使用hash类型,将用户userId作为key,将商品itemId作为filed,将购物车List<TbItem>转为json串作为value。
推荐使用hash ,可以提高修改的效率(性能的提升),如果是String 存储大数据量的时候速度较慢。
相关阅读
cer, pfx 创建,并且读取公钥/密钥,加解密 (C#程序实现)
http://blog.csdn.net/zj510/article/details/39964533PKI技术(public key infrastructure)里面,cer文件和pfx文件是很常见的。通常c
Bilateral Filters(双边滤波算法)原理及实现
双边滤波算法原理: 双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样,双边滤波也是采用加权平
偶然看到一篇关于随机数的文章,于是花了两小时的时间做了这个小游戏:石头剪刀布,回忆童年有木有?游戏的实现逻辑和操作一样简单。等不
已经实现,优化空间还很大。 效果Gif 原理: 方法一:A手机不停的调用系统截图,将得到的数据压缩后不停的Socket发送至服务器,服务器
知识付费一夜崛起,酣战之时,能否借助运营实现突围?如果说眼下有什么风口行业,知识付费算得之一。据阿里应用分发Q2报告统计,知识付费用