Ch01-缓存雪崩、缓存击穿、缓存穿透

Ch01-缓存雪崩、缓存击穿、缓存穿透

February 1, 2023
Cache
cache

通常情况下可以采用限流降级等技术,限制请求的访问频率,避免数据库压力过大,保证应用程序的可用性,这样也可以解决伤处问题。

名词 概念 导致原因 解决方案
缓存雪崩 缓存中的大量数据同时失效,导致所有请求都落到数据库上,从而导致数据库压力过大,甚至崩溃。 通常是由于缓存中的数据过期时间设置相同或相近,导致同时失效 可以采用不同的缓存失效策略,如随机失效、定时失效、LRU(Least Recently Used)失效等,避免缓存中的数据同时失效
缓存击穿 缓存中的某个数据失效,而此时有大量请求同时访问该数据,导致所有请求都落到数据库上,从而导致数据库压力过大,甚至崩溃。 通常是由于热点数据被频繁访问,而缓存中的数据失效时间较短,导致缓存中的数据频繁失效。 可以将热点数据缓存到内存中,避免频繁访问数据库,提高应用程序的性能。
缓存穿透 指请求的数据在缓存中不存在,而且数据库中也不存在,导致每次请求都要访问数据库,从而导致数据库压力过大,甚至崩溃 通常是由于恶意攻击或者应用程序的缓存配置错误等原因导致。 可以采用布隆过滤器等技术,过滤掉不存在的数据