当前位置: 首页 > news >正文

做特价网站电商平台怎么样才能做起来

做特价网站,电商平台怎么样才能做起来,惠州 网站建设,网站建设交付社区电商的购物车缓存架构 在购物车中的功能主要有这几个#xff1a;商品加入购物车、查看购物车列表、删除购物车商品、选中购物车商品进行结算 这里购物车的场景和之前用户信息以及菜谱分享信息还不同#xff0c;如果在举办了大型购物活动时#xff0c;购物车可能需要面…社区电商的购物车缓存架构 在购物车中的功能主要有这几个商品加入购物车、查看购物车列表、删除购物车商品、选中购物车商品进行结算 这里购物车的场景和之前用户信息以及菜谱分享信息还不同如果在举办了大型购物活动时购物车可能需要面临写多读少或者写多读多的场景面临高并发的读和写那么在购物车中就以 Redis 作为主存储异步的将数据进行落库持久化 商品加入购物车 那么我们先来看一下商品加入购物车的业务场景当将一个商品加入购物车流程如下 商品加入购物车首先需要判断商品是否已经在购物车中存在了那么就分了两种情况如果商品在购物车中已经存在我们需要去对购物车中该商品的数量 1 然后在缓存中更新购物车里这个商品的信息最后发送更新消息到 MQ 中进行异步落库如果商品在购物车中不存在那么就直接去缓存中添加购物车里该商品的信息再发送持久化消息到 MQ 中进行落库 那么缓存中需要存储的数据以及存储使用的数据结构如下 用户购物车已有商品的数量使用 hash 来存储这个商品的数量用于在用户添加商品到购物车时判断购物车中的商品数量是否超过购物车商品数量的上限 key - shopping_cart_hash:{userId} field - skuId即商品的 id value - 存储商品的数量 存储结构为 shopping_cart_hash:{userId} {{skuId}: count1,{skuId}: count2 }商品的详情信息使用 hash 来存储 key - shopping_cart_extra_hash:{userId} field - skuId value - 商品详情 存储结构为 shopping_cart_extra_hash:{userId} {{skuId}: 商品详情json串,{skuId}: 商品详情json串 }存储购物车商品的顺序使用 zset 存储用于查询购物车的商品时使用 key - shopping_cart_zset:{userId} value - skuId score - System.currentTimeMillis() 分数使用当前系统的时间戳即可按照加入购物车的时间对商品进行排序那么添加购物车商品的流程如下 在 MQ 中订阅更新消息和持久化消息即可这里注意在订阅更新消息时是更新用户购物车中的商品信息那么有可能是增加商品的数量也有可能是减少商品的数量所以在数据库中我们要判断如果商品的数量更新后为 0 的话就直接删除掉这条数据就好了 以及要做一些数据校验如商品的数量最小值为 0不可以为负数这些都是业务层面上的考虑 这里的购物车存储架构使用 Redis 作为主存储MySQL 作为持久化那么如果 Redis 崩溃无法使用的话MySQL 也可以作为一个备用存储基于 MySQL 做一个降级处理在 Redis 恢复的时候可以将数据库中的数据再重新加载到 Redis 中来 就算 Redis 中一些数据没来得及发送到 MQ 进行消息落库影响也不大购物车中的数据在未提交订单之前本来就是临时数据丢一个影响不大 查询购物车中商品 查询购物车中的商品的话直接从 Redis 中进行查询先按照商品加入购物车的时间查询出来所有的商品 id再根据商品 id 去查询商品的详情这个流程还是比较简单的 购物车中的商品是根据加入购物车的时间加入到 zset 中去的那么查询的话使用 zrevrange shopping_cart_zset:{userId} 0 -1 根据 score 获取从大到小排序的商品 id 再根据这些商品 id 去 Redis 的 hash 中查数据的商品的详情信息通过 hgetall shopping_cart_extra_hash:{userId} 来获取该用户购物车中的所有商品信息将这些商品信息返回即可 购物车中商品在缓存中的可视化存储结构如下图 选中购物车中的商品 在商品实体类中通过一个字段 flag 来控制该该商品是否被选中了如果选中该商品就将 flag 设置为 1如果取消选中就将 flag 设置为 0 选中商品之后直接在缓存中更新该商品的详情即可也就是对 keyshopping_cart_extra_hash:{userId}field{skuId} 的商品详情信息进行更新 总结 写多读多、写多读少的场景以 Redis 作为主存储通过 MQ 异步将数据进行落库持久化如果存在读出来数据并对读出来的数据进行修改的场景的话就要考虑是否存在并发问题了如果存在的话要加分布式锁进行控制
http://wiki.neutronadmin.com/news/363504/

相关文章:

  • 网站建设公司公司介绍百度商桥接入网站
  • 品牌型网站有哪些镇江论坛网站建设
  • 观影楼网站wordpress 破解账号
  • 一分钟建站泰安可信的网站建设
  • 网站开发net源码网易企业邮箱怎么修改密码
  • 网站安全怎么做俄罗斯最新新闻消息
  • 湖南彩票网站开发wordpress如何上传文件大小
  • 为企业规划网络促销方案网站优化推广服务
  • 搭建网站框架公司网站制作费用申请
  • 专业网站建设工作室北京注册公司流程
  • 个人网站空间网络营销是什么研究
  • 美化网站代码网站建设 岗位职责
  • 聊城做网站推广哪家好浙江百度推广开户
  • 住房城乡建设厅官方网站在原域名给公司建立网站
  • 简述网站制作基本流程网站管理 设置开启
  • 网站关键词设置数量普洱茶网站建设
  • 做网站和彩票的同步开奖怎么做国外互联网资讯网站
  • 东莞企业网站建设制作o2o商超网站建设
  • 网站制作寻找客户asp一个空间建多个网站系统
  • 免费申请网站永久wordpress landx
  • 从化市网站建设wordpress媒体文件位置
  • 电商网站开发文字教程程序员入门教程
  • 建立网站站点的目的如何用网站做淘宝客
  • 网站推广 昆明杭州建设厅网站
  • 哪个学校设有网站开发专业个人网站可以做音乐吗
  • 百度站内搜索济南区网站开发
  • 网站备案 收费安装wordpress要数据库
  • 做网站建设的有哪些如何备份网站 整站
  • 优享wordpress东莞网站建设优化推广
  • 中山网站建设找阿江详细介绍网站建设的整个流程