摘要:
阶段一 代码如下: private Map<String, List<CatelogTwoLevelVo>> getCatalogJsonFromDb() { //得到锁之后,去缓存中再确定一次是否有数据 String catalogJson = redisTemplate.opsForValue( 阅读全文
posted @ 2023-01-31 21:05
不是孩子了
阅读(48)
评论(0)
推荐(0)
摘要:
方案1:使用synchronized (this)加锁(本地锁) Springboot所有组件在容器中都是单例的,this就是我们这个serviceImpl实例,是单例的。当大量请求进行数据库查询时,由于我们加锁了,会先争夺锁。抢到锁的请求去查询数据库,其他请求等待。但是还要注意, 一个请求查询完毕 阅读全文
posted @ 2023-01-31 18:39
不是孩子了
阅读(200)
评论(0)
推荐(0)
摘要:
* 1、空结果缓存:解决缓存穿透 * 2、设置过期时间(加随机值):解决缓存雪崩 从上面逻辑可以看出,当redis中为空时,我们查询数据库,不论有没有查到结果,都进行缓存,解决了缓存穿透的问题。 同时设置了随机过期时间解决了可能造成的缓存雪崩问题 阅读全文
posted @ 2023-01-31 18:08
不是孩子了
阅读(10)
评论(0)
推荐(0)
摘要:
  
评论(0)
推荐(0)
摘要:
我们通过使用jedis进行解决 1、修改依赖 2、使用Jmeter测试,就不会出现内存泄漏了 阅读全文
posted @ 2023-01-31 15:10
不是孩子了
阅读(62)
评论(0)
推荐(0)
摘要:
前面我们是每次都直接从数据库获取,现在将他改成一个方法,然后重新编写service实现类中的方法。 阅读全文
posted @ 2023-01-31 14:15
不是孩子了
阅读(31)
评论(0)
推荐(0)
摘要:
1、导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2、redis配置 3、测试 阅读全文
posted @ 2023-01-31 13:54
不是孩子了
阅读(27)
评论(0)
推荐(0)

浙公网安备 33010602011771号