自己负责的模块

发布时间 2023-04-20 20:58:59作者: 空空大首领

商品赠品互转的流程实现

  1. 定义商品赠品互转的数据模型,通常包括以下字段:

    • 源商品ID
    • 目标商品ID
    • 转换条件(例如需要的商品数量和赠品数量)
    • 转换时间段(例如开始时间和结束时间)
  2. 创建商品赠品互转的业务逻辑层,实现商品赠品互转的具体业务逻辑,例如根据用户选择的源商品ID和目标商品ID,查询对应的转换规则,并根据转换条件和转换时间段判断是否可以进行转换。

  3. 实现商品赠品互转的数据访问层,提供CRUD(创建、读取、更新、删除)操作,实现对转换规则的增删改查功能。

  4. 创建商品赠品互转的控制器层,提供RESTful API接口,用于接收用户的请求和返回响应数据。

  5. 实现商品赠品互转的前端界面,用于展示转换规则和操作转换。

  6. 对商品赠品互转功能进行测试和验证,确保功能的稳定性和安全性。

缓存

1.缓存穿透

当查询一个不存在的数据,缓存中是没有的,将会查询数据库,但是数据库也没有这个数据,并且没有把这次查询的null值存到缓存中,导致每次查询都会到数据层查询,失去了缓存的意义

风险:如果有人利用不存在的数据进行攻击,数据库瞬时压力增大,导致崩溃。

解决:null结果缓存,并加入短暂过期时间

2.缓存雪崩

设置缓存时key采用了相同的过期时间,导致在某一时间同时失效,请求全部到数据库,导致雪崩

解决:在原有的失效时间上增加一个时间随机值,这样每个缓存的过期时间重复率会降低。

3.缓存击穿

对一些设置了过期时间的key,如果此时的key被高频访问(为苹果手机的id),同时此key时间过期,那么所有的请求都会到数据库,导致数据库崩溃,称为缓存击穿

解决:加锁,大量并发只让一个去查,其他人等待,查到之后释放锁,存到缓存中,其他人获取锁,查到缓存中有数据,就不用到数据库中去查  

购物车服务

 

订单服务