您的位置:首页 > 文旅 > 美景 > springboot 整合redis问题,缓存击穿,穿透,雪崩,分布式锁

springboot 整合redis问题,缓存击穿,穿透,雪崩,分布式锁

2024/12/23 12:32:02 来源:https://blog.csdn.net/WYT11/article/details/139637092  浏览:    关键词:springboot 整合redis问题,缓存击穿,穿透,雪崩,分布式锁

boot整合redis 压力测试出现失败
在这里插入图片描述在这里插入图片描述
解决方案 排除lettuce 使用jedis
在这里插入图片描述

 <!-- 引入redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency>

最终使用的都是redisTemplate
在这里插入图片描述

缓存穿透

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

分布式锁

分布式锁演示过程

在这里插入图片描述在这里插入图片描述
进阶2 设置过期时间和不存在则枷锁

占锁

锁的值应该是一个唯一标识,不然分布式应用,相同的value 会引起此服务将另外的服务的锁给释放掉了
在这里插入图片描述

释放锁

删除也必须是原子性的,否则有可能redis在传输过程中已过期,结果没结果删
在这里插入图片描述在这里插入图片描述
完整(保证一定会释放锁)
在这里插入图片描述

完整操作

使用redisson
引入依赖

<!-- 以后使用Redisson作为所有分布式锁 --><dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.12.0</version></dependency>

创建配置类

@Configuration
public class MyRedissonConfig {/*** 所有对Redisson的使用都是通过RedissonClient* @return* @throws IOException*/@Bean(destroyMethod="shutdown")public RedissonClient redisson() throws IOException {//1、创建配置Config config = new Config();config.useSingleServer().setAddress("redis://192.168.1.100:6379");//2、根据Config创建出RedissonClient实例//Redis url should start with redis:// or rediss://RedissonClient redissonClient = Redisson.create(config);return redissonClient;}}

使用

在这里插入图片描述在这里插入图片描述在这里插入图片描述

方式2

给锁设置过期时间
在这里插入图片描述在这里插入图片描述
最佳实战
我们设置所得过期时间,时间设置的大一些,然后手动枷锁,手动解锁

读写锁
在这里插入图片描述
此问题是,读写调用的时候,读锁只有写锁完成并释放,才可以获取到锁
在这里插入图片描述在这里插入图片描述

闭锁

在这里插入图片描述
三个班的人都走了,才可以关门

信号量

在这里插入图片描述
尝试获取一下,不行就算了,不至于一直等待
在这里插入图片描述

终极使用

在这里插入图片描述在这里插入图片描述

缓存一致性

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com