上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 74 下一页
摘要: ![](https://img2023.cnblogs.com/blog/2506674/202302/2506674-20230201232024466-673873389.png) ![](https://img2023.cnblogs.com/blog/2506674/202302/2506674-20230201232040225-2098210070.png) 阅读全文
posted @ 2023-02-01 23:20 不是孩子了 阅读(26) 评论(0) 推荐(0)
摘要: 我们使用前面记录的redisson来加锁 但是此时还存在问题,就是缓存的一致性问题 1、双写模式:修改数据后,将缓存中数据一并修改 2、失效模式:修改数据后,将缓存中的数据直接删除,另一个线程查缓存没数据,就会从数据库获得最新数据 3、解决方案 4、Canal简介 经常写会对性能有影响,但是经常读影 阅读全文
posted @ 2023-02-01 23:01 不是孩子了 阅读(121) 评论(0) 推荐(0)
摘要: 可以用来做分布式限流操作。 我们在redis中存储一个数据为3 @Autowired RedissonClient redissonClient; @Autowired StringRedisTemplate redisTemplate; //信号量测试 //停车 @GetMapping("/par 阅读全文
posted @ 2023-02-01 20:29 不是孩子了 阅读(106) 评论(0) 推荐(0)
摘要: @Autowired RedissonClient redissonClient; @Autowired StringRedisTemplate redisTemplate; //闭锁 @GetMapping("/lockDoor") @ResponseBody public String lock 阅读全文
posted @ 2023-02-01 20:19 不是孩子了 阅读(33) 评论(0) 推荐(0)
摘要: 保证一定读到最新数据,修改期间,写锁是一个排他锁/互斥锁。读锁是一个共享锁。(相当于操作系统中的读写者问题) 写锁没释放读必须等待 测试如下: @Autowired RedissonClient redissonClient; @Autowired StringRedisTemplate redis 阅读全文
posted @ 2023-02-01 19:24 不是孩子了 阅读(109) 评论(0) 推荐(0)
摘要: @GetMapping("/hello") @ResponseBody public String hello(){ //1、获取一把锁,只要是锁的名字一样,就是同一把锁 RLock lock = redissonClient.getLock("my-lock"); //2、加锁 lock.lock 阅读全文
posted @ 2023-02-01 19:06 不是孩子了 阅读(267) 评论(0) 推荐(0)
摘要: 1、导入依赖 <!--以后使用redisson作为我们的所有分布式锁,分布式对象等功能框架--> <!-- https://mvnrepository.com/artifact/org.redisson/redisson --> <dependency> <groupId>org.redisson< 阅读全文
posted @ 2023-02-01 14:36 不是孩子了 阅读(51) 评论(0) 推荐(0)
摘要: 阶段一 代码如下: 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)
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 74 下一页