自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Redis-黑马点评项目-07-jmeter测试-200个线程抢购100个秒杀券超卖问题

在高并发场景下,秒杀系统容易出现超卖问题。本文通过Java代码展示了如何利用乐观锁(CAS)解决这一问题。代码中,通过判断库存是否大于0来确保库存扣减的原子性,避免超卖。同时,使用Redis生成全局唯一订单ID,确保订单的唯一性。在测试过程中,通过JMeter模拟高并发场景,发现数据库中的库存已全部售出,但测试结果未达到预期。通过清理缓存和添加响应断言,最终验证了系统的正确性。最终效果图显示,系统在高并发下能够正确处理库存扣减和订单生成,解决了超卖问题。

2025-05-22 16:53:37 203

原创 Redis-黑马点评项目-06-jmeter测试-200个线程抢购秒杀券全部报错401问题

在性能测试中,200个线程报错401,表明请求未授权。问题出在路径/voucher-order/seckill/22需要登录验证,而测试工具JMeter未携带有效的token。解决方法是获取有效的token(HASH码),并在JMeter中添加一个Http信息头管理器,将token以键authorization的形式放入。这样,JMeter在发送请求时会携带授权信息,从而避免401错误。

2025-05-22 14:57:23 165

原创 Redis-黑马点评项目-05-postman测试-新增优惠券报错以及前端展示优惠劵报错NaN问题

在使用Postman向数据库添加优惠券信息时,遇到了JSON解析错误。错误信息显示,beginTime字段的当前令牌(VALUE_STRING)不是数字,无法使用数字值访问器。原因是JacksonConfig.java中配置了从JSON中读取时间戳(毫秒值),而原始请求体中传递的是日期字符串"2022-01-26T10:09:17"。

2025-05-21 21:31:28 418

原创 Redis-黑马点评项目-04-使用逻辑过期来解决缓存击穿问题

在高并发环境下,只查了一次数据库,而且我们故意修改的是,数据库和redis数据不一样,这样过期了,就会有一个线程去修改,也只能由一个修改,谁拿到了锁就修改呗,也就是查数据库,写回到redis,其他线程,在修改之前查询返回的是旧数据,可能会出现短时间数据不一致问题。以防有一个线程完成缓存重建,刚刚释放完lock,另外一个线程拿到lock,再判断一下是否完成有没有这个key,若有,就判断是否到期,没到期就会直接返回,2次返回前都是先执行的finally,保证锁被释放。无法解析符号 ‘zset’

2025-05-20 22:54:08 723

原创 Redis-黑马点评项目-03-使用RedisSETNX模拟锁来解决缓存击穿问题

本文介绍了一种基于Redis的分布式锁方案,结合布隆过滤器解决缓存穿透问题。方案的核心是通过Redis的SETNX命令实现分布式锁,确保在高并发场景下,只有一个线程能够访问数据库,避免缓存击穿。同时,利用布隆过滤器预先判断数据是否存在,防止无效请求穿透缓存直接访问数据库。代码实现中,首先通过布隆过滤器判断请求的ID是否存在,若不存在则直接返回错误。若存在,则尝试从Redis缓存中获取数据,若缓存未命中,则尝试加锁并查询数据库。查询成功后,将结果写入缓存并释放锁。通过该方案,可以有效提升系统的并发处理能力和缓

2025-05-19 23:21:10 137

原创 Redis-黑马点评项目-02-使用布隆过滤器来解决缓存穿透问题

本文介绍了如何通过Redisson实现布隆过滤器来优化查询性能,避免缓存穿透问题。首先,在pom.xml中引入Redisson依赖,然后编写配置类注册RedissonClient对象。接着,实现布隆过滤器类,将所有店铺ID加载到布隆过滤器中。在查询时,通过布隆过滤器拦截无效的店铺ID,避免直接查询数据库。最后,文章提到需要动态更新布隆过滤器以应对店铺ID的增删操作,并展示了拦截效果图。通过这种方式,可以有效提升系统性能并减少不必要的数据库查询。

2025-05-19 20:31:59 482

原创 Redis-黑马点评项目-01-postman测试-时间戳-localDate序列化问题

安装postman后发送请求地址和请求体中,采用 RestFul 风格,修改采用putIDEA报错:原来是Jackson无法将时间戳转换为LocalDateTime 类型数据。

2025-05-19 17:02:54 465

原创 IDEA 中github首次使用细节

因为要用开启了代理模式(魔法)来访问github,所以要修改git提交的端口号,弄了一个脚本文件,使用后开启代理端口号,报错消失,访问完可以恢复。

2025-05-10 22:07:02 177

原创 springboot开发请求路径常用的

/api/**/log是错的,不能这样写,它必须出现在最后位置上。

2025-05-08 22:41:41 59

原创 springboot3中webjars静态资源的访问细节

访问路径必须是/webjar/** 这是规定的。

2025-05-08 21:26:57 102

原创 请求头中的accept属性

代表希望得到的返回类型时html。

2025-05-08 19:22:22 165

原创 springboot3日志管理细节

springboot3日志管理

2025-05-07 16:09:16 288

原创 MySQL查询一些隐秘细节

为什么呢,因为 id 是 int类型,MySQL识别到 ‘1’ 时,自动转为int 1。

2025-04-23 23:01:06 101

原创 MyBatis之动态生成类

MyBatis底层使用的就是Javassist,在内存中生成class文件,然后就不用写dao层的实现类了。也把这个放到环境变量中,就不会报错了。

2025-04-22 21:36:04 387

原创 List<int[]> 怎么转换成 int[][] 以及拓展

注意:0是占位符,JVM会根据自动变为list.size()

2025-04-21 12:04:14 197

原创 MyBatis事务管理与jdbc事务管理代码对照关系

具体对照关系,写在了代码里面,MyBatis采用JDBC事务管理方式时,实际上底层封装JDBC事务管理机制。

2025-04-17 12:37:58 166

原创 pojo类中为什么推荐使用包装类

2025-04-16 23:06:41 89

原创 包装类中的字符串转换API对比

Double.parseDouble() 转的是普通double 类型。Double.valueOf() 转的是包装类。:都是字符串转数字类型。

2025-04-16 22:48:41 82

原创 Maven建立web项目心得

maven web 项目

2025-04-16 21:46:14 334

原创 Spring八股(完结,后续遇到新问题会补充)

spring 8股

2025-04-16 13:24:31 441

原创 MyBatias系列之Bug01

mybatis bug系列

2025-04-15 16:34:12 197

原创 LeetCode100题持续更新中

LeetCodeHot100题,持续更新中

2025-04-15 10:00:28 1013 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除