随笔分类 -  点评系统

摘要:达人探店业务之点赞、排行榜功能(Redis经典场景) 初始代码: @GetMapping("/likes/{id}") public Result queryBlogLikes(@PathVariable("id") Long id) { //修改点赞数量 blogService.update(). 阅读全文
posted @ 2023-09-13 23:34 程序侠 阅读(40) 评论(0) 推荐(0) 编辑
摘要:商品查询业务之解决商品查询的缓存穿透、缓存雪崩、缓存击穿问题(封装工具类) 核心思路如下: 在原来的逻辑中,我们如果发现这个数据在mysql中不存在,直接就返回404了,这样是会存在缓存穿透问题的 现在的逻辑中:如果这个数据不存在,我们不会返回404 ,还是会把这个数据写入到Redis中,并且将va 阅读全文
posted @ 2023-09-13 23:33 程序侠 阅读(16) 评论(0) 推荐(0) 编辑
摘要:秒杀优化 秒杀优化-异步秒杀思路 我们来回顾一下下单流程 当用户发起请求,此时会请求nginx,nginx会访问到tomcat,而tomcat中的程序,会进行串行操作,分成如下几个步骤 1、查询优惠卷 2、判断秒杀库存是否足够 3、查询订单 4、校验是否是一人一单 5、扣减库存 6、创建订单 在这六 阅读全文
posted @ 2023-09-13 23:32 程序侠 阅读(34) 评论(0) 推荐(0) 编辑
摘要:优惠券秒杀业务之一人一单 需求:修改秒杀业务,要求同一个优惠券,一个用户只能下一单 这里插个题外话,其实很多业务如博客的阅读量、点赞数等都是要一人只能统计一次阅读量和一人只能点赞一次,阅读量是根据ip来统计的,而点赞数要用到redis的set类型(去重),排行榜是用到redis的sortedSet类 阅读全文
posted @ 2023-09-13 23:29 程序侠 阅读(79) 评论(0) 推荐(0) 编辑
摘要:优惠券秒杀业务之库存超卖问题解决 有关超卖问题分析:在我们原有代码中是这么写的 if (voucher.getStock() < 1) { // 库存不足 return Result.fail("库存不足!"); } //5,扣减库存 boolean success = seckillVoucher 阅读全文
posted @ 2023-09-13 23:29 程序侠 阅读(51) 评论(0) 推荐(0) 编辑
摘要:优惠卷秒杀业务之全局唯一ID 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题: id的规律性太明显 受单表数据量的限制 场景分析:如果我们的id具有太明显的规则,用户或者说商业对手很容易猜测出来我们的一些敏感信息,比如商城在一 阅读全文
posted @ 2023-09-13 23:28 程序侠 阅读(9) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示