商品赠品互转的流程实现
-
定义商品赠品互转的数据模型,通常包括以下字段:
- 源商品ID
- 目标商品ID
- 转换条件(例如需要的商品数量和赠品数量)
- 转换时间段(例如开始时间和结束时间)
-
创建商品赠品互转的业务逻辑层,实现商品赠品互转的具体业务逻辑,例如根据用户选择的源商品ID和目标商品ID,查询对应的转换规则,并根据转换条件和转换时间段判断是否可以进行转换。
-
实现商品赠品互转的数据访问层,提供CRUD(创建、读取、更新、删除)操作,实现对转换规则的增删改查功能。
-
创建商品赠品互转的控制器层,提供RESTful API接口,用于接收用户的请求和返回响应数据。
-
实现商品赠品互转的前端界面,用于展示转换规则和操作转换。
-
对商品赠品互转功能进行测试和验证,确保功能的稳定性和安全性。
缓存
1.缓存穿透
当查询一个不存在的数据,缓存中是没有的,将会查询数据库,但是数据库也没有这个数据,并且没有把这次查询的null值存到缓存中,导致每次查询都会到数据层查询,失去了缓存的意义
风险:如果有人利用不存在的数据进行攻击,数据库瞬时压力增大,导致崩溃。
解决:null结果缓存,并加入短暂过期时间
2.缓存雪崩
设置缓存时key采用了相同的过期时间,导致在某一时间同时失效,请求全部到数据库,导致雪崩
解决:在原有的失效时间上增加一个时间随机值,这样每个缓存的过期时间重复率会降低。
3.缓存击穿
对一些设置了过期时间的key,如果此时的key被高频访问(为苹果手机的id),同时此key时间过期,那么所有的请求都会到数据库,导致数据库崩溃,称为缓存击穿
解决:加锁,大量并发只让一个去查,其他人等待,查到之后释放锁,存到缓存中,其他人获取锁,查到缓存中有数据,就不用到数据库中去查
购物车服务
订单服务