相关博客:https://hcshow.blog.csdn.net/article/details/118938917

原理

以客户id作为key,每位用户创建一个hash存储结构存储对应的购物车信息
将商品编号作为field,购买数量作为value进行存储
使用hash结构保存购物车信息:

  • 以用户ID作为key
  • 以商品ID作为field
  • 以商品数量作为value

购物车信息保存在Redis中,仅仅是将数据存储到redis中,并没有起到加速的作用,商品信息还需要二次查询数据库。
以hash结构保存购物车信息,key命名格式一般为:user:userId:cart

可以将每条购物车中的商品记录保存成两条field:

  • filed1专用于保存购买数量
    命名格式: 商品skuid:nums
    保存数据: 数值
  • field2专用于保存购物车中显示的信息,包含文字描述,图片地址,所属商家信息等
    命名格式: 商品skuid:info
    保存数据: json

示例:

  1. 向ID为1234的用户(cart:前缀为购物车)的购物车添加3个商品,产品的ID为1001,1002,1003,数量分别为3,2,4:

  2. 获取指定用户购物车中的所有商品

  3. 获取购物车中商品的总数量

  4. 删除购物车里的某个商品

  5. 增加或减少某个商品的数量

Redis保存购物车信息相关推荐

  1. 快速使用redis保存session信息

    2019独角兽企业重金招聘Python工程师标准>>> /*** redis配置*/ $config['redis_host'] = '127.0.0.1'; $config['re ...

  2. php cache缓存 购物车,Yii2使用Redis缓存购物车等数据

    服务器配置Redis Redis下载安装配置 wget http://download.redis.io/releases/redis-stable.tar.gz tar -xvf redis-sta ...

  3. c# webclient 保存会话信息_会话保持机制cookie和session

    今天总结一下cookie和session的作用 首先,cookie是一种缓存机制,session是回话机制 1.Cookie的使用过程是怎么样的? 由于 HTTP 协议是无状态协议,如果客户通过浏览器 ...

  4. session里保存什么信息

    http本身无状态,说白了就是不保存任何用户信息. 所以引入cookie(客户端方案).session(服务端方案)来保存用户信息: 这些信息通常包括什么,不能包括什么呢? : 1. 身份信息.登陆状 ...

  5. redis实现购物车

    购物车管理包含功能:提交商品到购物车.显示购物车列表.删除购物车里商品.修改购物车.清空购物车等等 1. 购物车的实现方式: ① 可以把购物车的数据,给存储到 session 里面,一旦关闭浏览器,则 ...

  6. (转)Django ==== 实战学习篇九 在session中保存购物车

    在session中保存购物车: 之前实现了产品目录的界面,用户看到合适的产品,就会加入购物车,对于购物车界面,需要考虑一下几点: 购物车应该显示:物品的清单,列出买方选中的产品: 购物车的清单有没有必 ...

  7. 基于redis购物车java代码_基于redis实现购物车基本功能

    1.准备工作: 数据库表设计 (yj_product_specification:商品规格表,用户表,商品表等     {没有规格表,只有规格值表,}), 测试工具:POSTMAN redis客户端: ...

  8. 关闭浏览器 退出redis id_购物车增删改与清空,用Redis实现一下吧

    购物车管理包含功能:提交商品到购物车.显示购物车列表.删除购物车里商品.修改购物车.清空购物车等等 1. 购物车的实现方式: ① 可以把购物车的数据,给存储到 session 里面,一旦关闭浏览器,则 ...

  9. php使用redis实现购物车功能,ThinkPHP5+Redis实现购物车

    本篇文章是通过ThinkPHP5和Redis实现购物车,功能包括:购物车列表.添加购物车.获取部分商品.获取部分商品总数量.获取全部商品总数量.商品减一.修改商品数量.删除商品.清空购物车,这些功能基 ...

最新文章

  1. 关于stm32f407wifi模块的设置_料粉定量称重模块,罐子称重传感器
  2. 文件描述符fd、文件指针fp和vfork()
  3. 我的2013-从GIS学生到GIS职业人的飞跃
  4. ML之FE:特征工程中数据缺失值填充的简介、方法、全部代码实现之详细攻略
  5. 曹大带我学 Go(6)—— 技术之外
  6. Weex动态化方案与双十一实践
  7. Java 8中获取参数名称
  8. Android Apk 打包
  9. linux系统如何禁用网卡,Linux 中如何启用和禁用网卡?
  10. 产品管理工作的文档管理
  11. 2010年下半年信息系统监理师下午题的答题参考五
  12. SEM实验室常见仪器计量问题详解及仪器标准大全附
  13. 基于JavaEE的公共自行车租赁管理系统_JSP网站设计_SqlServer数据库设计
  14. 《未来世界的幸存者》后感
  15. 2022年高教社杯全国大学生数学建模竞赛-【比赛规则篇】比赛规则及比赛指导
  16. Docker创始人兼CTO宣布离职;特斯拉被爆处于破产边缘;iOS更新,支持京沪地铁卡;谷歌安卓侵权案面临88亿美元赔款丨Q新闻...
  17. 独家专访英特尔AI布道师 | 通信工程到人工智能的高质量转型
  18. python第一章(下)
  19. vbs过程参数--byref和byval
  20. java算法之因式分解

热门文章

  1. Kubernetes 常用命令及应用实例
  2. javascript 45种缓动效果BY司徒正美
  3. 基于matlab指纹识别论文,毕业论文-基于Matlab的指纹识别
  4. You can't specify target table 'Person' for update in FROM clause
  5. LS1028A make 错误 sudo apt update 错误: Error in `appstreamcli‘
  6. 换空间导致排名丢失之谷歌排名恢复技巧
  7. 史密斯热水器 保养灯亮闪烁
  8. 【编程语言选择】我们学C++将来能做什么?
  9. Vue 中 keep-alive 组件与 router-view 组件的那点事
  10. lanmp centOS7 一键式 搭建配置