摘要: 1、导入依赖 <!--缓存--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> 由于我们使用redis 阅读全文
posted @ 2023-02-01 23:53 不是孩子了 阅读(146) 评论(0) 推荐(0)
摘要: ![](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)