📄️ 如何解决缓存击穿?
缓存击穿指在高并发的系统中,一个热点数据缓存过期或者在缓存中不存在,导致大量并发请求直接访问数据库,从而给数据库造成巨大压力,甚至可能引起宕机。具体来说,当某个热点数据在缓存中过期时,如果此时有大量并发请求同时访问这个数据,由于缓存中不存在,所有请求都会直接访问数据库,导致数据库负载急剧增加。
📄️ 如何解决缓存穿透?
缓存穿透是指由于请求没有办法命中缓冲,因此就会直接打到数据库,当请求量较大时,大量的请求就可能会直接把数据库打挂。通常情况下,缓存是为了提高数据访问速度,避免频繁查询数据库。但如果攻击者故意请求缓存中不存在的数据,就会导致缓存不命中,请求直接访问数据库。
📄️ 如何解决缓存雪崩?
缓存雪崩是应用系统指在某个时间点上,缓存中的大部分数据同时失效,导致大量的请求直接访问底层数据库或后端服务,从而造成数据库负载剧增,甚至导致数据库崩溃的情况。通常情况下,缓存中的数据会设置不同的过期时间,以避免同时失效的情况。然而,如果某个不可控的事件导致了大量缓存同时失效,就会出现缓存雪崩。
📄️ 热点缓存数据如何预热?
缓存预热是在系统启动或者运行过程中,提前将部分数据加载到缓存中,以确保在实际请求到来时,缓存已经包含了部分常用数据,从而提升系统的响应速度。一般来说都是在活动或者需要调用对应缓存前,通过定时任务从数据源中加载到缓存。预热数据会根据业务实际情况,来判断是否需要设置过期时间,建议缓存预热的数据设置永不过期,避免内存淘汰或者过期造成击穿或雪崩等场景。