• 商城项目的购物车模块的实现------总结


    1.1、session

      将购物车直接存放到与用户相关的session中。
    优点:
      代码实现超级简单。
    缺点:
      购物车存在session当中,如果session销毁,购物车就没有了。(session只存在于一次会话中。)
      用户未登录的时候不能添加购物车。
      购物车使用了session,而session是存在于内存资源中,消耗了大量的内存资源。非常不好。
      集群情况下,session很难共享,无法进行水平扩展。(tomcat的session广播对资源消耗严重,即tomcat的带宽不干别的了,就去广播了。)

    1.2、cookie

      将购物车直接存放到浏览器的cookie中。
    优点:
      在不登陆的情况下也可以添加购物车。
      不占用服务端存储空间。
      用户体验好。
      代码实现简单。
    缺点:
      cookie中保存的容量有限。最大4k。
      cookie占用的是浏览器的缓存,可能用户会定期删除cookie。
      把购物车信息保存在cookie中,更换设备购物车信息不能同步。

    1.3、cookie+入库 / 直接入库

      对于未登陆用户,将购物车放到cookie中,对于已登陆用户将购物车放入数据库中。
      将购物车持久化到数据库中。这里的数据库指的是关系型数据库或者非关系型数据库
    优点:
      关系型数据库:mysql数据库(数据完整性比较好)
      非关系型数据库:redis数据库(读写速度快)
    缺点:
      相对于session和cookie,没啥缺点。
      占用服务端资源。

    2、购物车实现总结

      自己写着玩的代码可以使用cookie+session。
      真实场景应该是要使用cookie+入库,或者直接入库。
      京东准许未登录状态添加购物车,应该采用的是cookie+入库。
      淘宝并不准许用户未登录添加购物车,应该采用的是直接入库。

  • 相关阅读:
    一、flink架构模型
    每日看点
    argparse模块用法实例
    Python 牛刀小试
    spark 编程基础
    我想过的100种暴富机会
    hadoop大数据架构
    centOS7 ip 配置
    classNotFound异常的一个原因
    linux上部署java项目
  • 原文地址:https://www.cnblogs.com/cainame/p/11671719.html
Copyright © 2020-2023  润新知