我们先来分析一下业务场景:
1.用户没有登录
使用cookie实现购物车:
优点:
1、实现简单 2、不需要占用服务端存储空间。
缺点:
1、存储容量有限 2、更换设备购车信息不能同步。
2.用户已经登录
把购物车商品列表保存到数据库中。推荐使用redis。
Key:用户id,value:购车商品列表。推荐使用hash,hash的field:商品id,value:商品信息。
在用户未登录情况下写cookie。当用户登录后,访问购物车列表时,
扫描二维码关注公众号,回复:
42674 查看本文章
a) 把cookie中的数据同步到redis。
b) 把cookie中的数据删除
c) 展示购物车列表时以redis为准。
如果redis中有数据cookie中也有数据,需要做数据合并。相同商品数量相加,不同商品添加一个新商品。 如果用户登录状态,展示购物车列表以redis为准。如果未登录,以cookie为准。
这里是用户没有登录,所以数据都是放在cookie里面,我们验证一下: