手机端搜索引擎排名,大庆网站建设优化,wordpress 医院模板,网站二级域名设置目录
缓存穿透
定义#xff1a;
解决方法#xff1a;
缓存击穿
定义#xff1a;
解决方案#xff1a; 缓存雪崩
定义#xff1a;
解决方案#xff1a; 缓存穿透、缓存击穿和缓存雪崩的区别 缓存穿透
定义#xff1a; 查询一个不存在的数据#xff0c;数据库未…目录
缓存穿透
定义
解决方法
缓存击穿
定义
解决方案 缓存雪崩
定义
解决方案 缓存穿透、缓存击穿和缓存雪崩的区别 缓存穿透
定义 查询一个不存在的数据数据库未查询到数据Redis也没有缓存这条数据导致每次都访问数据库从而导致数据库压力增加。
解决方法
布隆过滤器 优点可以快速判断一个元素是否在集合中可以避免不必要的数据查询。缺点布隆过滤器可能会认为某个元素存在但是实际不存在从而造成误判的情况。同时需要提前把数据标识添加到布隆过滤器中并且不支持删除操作。 缓存空对象 优点在查询数据库时如果数据不存在就把空值null存入到缓存中。当再次查询时将不会查询数据库。缺点空对象会占用缓存空间从而造成缓存浪费情况同时需要处理数据空值问题。
缓存击穿
定义 当Redis中某一缓存失效时多个请求同时访问该数据Redis无法拦截请求直接访问数据库就会造成缓冲击穿。缓存击穿会造成数据库压力急剧增加。
解决方案
逻辑过期热点数据不设置过期时间在缓存数据中添加过期时间字段当访问缓存数据时发现数据过期则更新数据。 优点具有高可用性避免了数据库压力同时不会因为数据更新阻塞用户请求缺点数据更新期间缓存中存在过期数据会影响一定的数据一致性。同时需要定时清理过期数据。分布式锁 优点通过加锁保证同时只有一个线程访问数据库并进行缓存更新后续线程会等待第一次线程更新完缓存后获取缓存数据。缺点高并发时锁竞争激烈影响性能。如果锁失效会导致缓存击穿。 缓存雪崩
定义 当Redis中大量数据同时过期就会导致缓存雪崩雪崩会导致数据库压力激增从而造成系统性能下降甚至造成崩溃。
解决方案
缓存过期时间设置成随机值 优点避免了大量缓存同时过期操作简便不需要复杂代码。缺点数据缓存时间不同可能会出现数据不一致问题同时有极小概率数据还是会同时失效。使用多级缓存如本地缓存加分布式缓存 优点可以提升缓存的命中率从而减少直接访问数据库的机会。缺点增加了系统的复杂度需要同时管理多重缓存同时需要额外的计算和储存资源。 缓存穿透、缓存击穿和缓存雪崩的区别
缓存穿透请求的数据在缓存中不存在。请求的数据在数据库中也不存在例如非法请求或恶意攻击。缓存击穿某个热点数据的缓存过期了。在数据失效的瞬间大量请求涌入数据库无法承受。缓存雪崩缓存中的大量数据在同一时间过期。缓存服务突然崩溃或失效所有请求直接访问数据库。