必威体育Betway必威体育官网
当前位置:首页 > IT技术

淘淘商城65-商城购物车系统实现分析

时间:2019-07-10 04:42:11来源:IT技术作者:seo实验室小编阅读:63次「手机版」
 

淘淘

目录

1.传统购物车实现方式

2.淘淘商城购物车实现方式

2.1购物车如何表示?

2.2怎么将购物车存入cookie中?

2.3使用哪种redis数据结构存放购物车?


1.传统购物车实现方式

用户将商品添加到购物车时,判断用户是否登录,如果已经登录将购物车放入session

存在的问题:

  • 购物车存在session当中,如果session销毁,购物车就没有了。

       给购物车做持久化

  • 用户未登录的时候不能添加购物车

      未登录的状态下,可以把购物放在cookie中

  • 购物车使用了session,而session是存在于内存资源中,消耗了大的内存资源。非常不好

       持久化,需要用到数据库

      a、mysql数据库(数据完整性比较好)

      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(双边滤波算法)原理及实现

双边滤波算法原理: 双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样,双边滤波也是采用加权平

Axure教程|如何实现石头剪刀布的小游戏

偶然看到一篇关于随机数的文章,于是花了两小时的时间做了这个小游戏:石头剪刀布,回忆童年有木有?游戏的实现逻辑和操作一样简单。等不

Android手机之间实现屏幕共享

已经实现,优化空间还很大。 效果Gif 原理: 方法一:A手机不停的调用系统截图,将得到的数据压缩后不停的Socket发送至服务器,服务器

酣战之下的知识付费,能否借运营实现突围?

知识付费一夜崛起,酣战之时,能否借助运营实现突围?如果说眼下有什么风口行业,知识付费算得之一。据阿里应用分发Q2报告统计,知识付费用

分享到:

栏目导航

推荐阅读

热门阅读