购物车微服务详情

微服务详情

在这里插入图片描述

离线购物车

离线购物车:主要使用localstorage保存到客户端,几乎不与服务端交互

在线购物车

在线购物车:使用redis实现。利用redis实现可靠缓存服务

流程图

在这里插入图片描述

新增商品

· 判断是否登录
· 是:则添加商品到后台Redis中
· 否:则添加商品到本地的Localstorage
无论哪种新增,完成后都需要查询购物车列表:

再次判断是否登录

· 否:直接查询localstorage中数据并展示
· 是:已登录,则需要先看本地是否有数据,

  • 有:需要提交到后台添加到redis,合并数据,而后查询
  • 否:直接去后台查询redis,而后返回

新增之后记得修改购物车数量。

为什么使用redis

购物车是一个读写频率很高的数据。因此我们这里选择读写效率比较高的Redis作为购物车存储。
redis详情
Spring Data Redis详情

使用的是redis中的什么数据结构

存储结构

Redis有5种不同数据结构,这里选择哪一种比较合适呢?Map<String, List>

  • 首先不同用户应该有独立的购物车,因此购物车应该以用户的作为key来存储,Value是用户的所有购物车信息。这样看来基本的k-v结构就可以了。
  • 但是,我们对购物车中的商品进行增、删、改操作,基本都需要根据商品id进行判断,为了方便后期处理,我们的购物车也应该是k-v结构,key是商品id,value才是这个商品的购物车信息。

综上所述,我们的购物车结构是一个双层Map:Map<String,Map<String,String>>

  • 第一层Map,Key是用户id
  • 第二层Map,Key是购物车中商品id,值是购物车数据

购物车实体类

在这里插入图片描述

拦截器

因为很多接口都需要进行登录,我们直接编写SpringMVC拦截器,进行统一登录校验。同时,我们还要把解析得到的用户信息保存起来,以便后续的接口可以使用。
在这里插入图片描述

web本地存储主要有两种方式:

LocalStorage

  • localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

localStorage语法

localStorage.setItem(“key”,“value”);// 存储数据

localStorage.getItem(“key”); // 获取数据

localStorage.removeItem(“key”); // 删除数据

SessionStorage

sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万码无虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值