Ylisen / dailyfresh-B2C

dailyfresh mall based on B2C model
228 stars 162 forks source link
celery django fastdfs redis

dailyfresh-B2C 分布式

dailyfresh mall based on B2C model
基于B2C的天天生鲜商城

B2C(Business-to-Customer), 企业对个人的一种商业模式,简称"商对客". 商对客是电子商务的一种模式,这种电子商务一般以网络零售业为主,主要借助于互联网开展在线销售活动。 B2C即企业通过互联网为消费者提供一个新型的购物环境——网上商店,消费者通过网络在网上购物、网上支付等消费行为。

为消费者提供一个新型的购物环境:
从0开始,立项、构建、开发到部署, 搭建一个天天生鲜商场

技术栈

技术架构

主体模块

主要分为四个大模块:

数据库表

DB

功能模块展示

点击查看--多图预警

功能与性能优化

  1. 用户注册发激活邮件时,可能发送邮件所需的时间较长,客户端会需要等待,用户体验不好。

    改进: 把耗时的任务放到后台异步执行,此处使用celery任务队列, 其中使用redis作中间件。

  2. redis存储用户历史浏览记录, 采用list数据结构: History_用户id: [skuid1,skuid2,skuid3]
  3. 使用redis存储用户购物车商品信息,采用hash数据结构: cart_userid: {'sku_id1': num, 'sku_id2': num}
  4. 采用分布式文件系统, 把商品图片等信息存储在FastDFS系统中, Nginx+FastDFS配合, 减少服务器的压力。
  5. 页面静态化: 首页、商品列表页、商品详情页等用户共同的页面, 把页面静态化,以减少对数据库的操作。当后台数据更改时自动重新生成静态页。
  6. 页面数据缓存,把页面使用的数据存放在缓存中,当再次使用这些数据时,先从缓存中获取,如获取不到,再去查询数据库,减少数据库的查询次数。
  7. 订单并发

Links