返回
Redis 同步、击穿、穿透及雪崩简述
2024-09-07
159 0对Redis最常见的几个问题,简要的说下我的理解与解决方法。
数据同步
指Redis做为缓存,在数据变化时,怎么保持与数据库数据同步的。
一般解决方案为:缓存双删(同步方案大都采用删除缓存,而不会更新新缓存。
缓存击穿
指在高并发应用场景下,已经缓存的热点Key突然失效,特别是多个热点Key同时失败,大量请求瞬间穿过Redis缓存, 一并到达数据库,对数据库形成巨大的压力甚至瘫痪数据库。
解决方案:1、热点数据不过期或设置很长的过期时间 2、缓存重建时,加互斥锁等防止多次重建或死锁
缓存穿透
指恶意用户,大请求量、高并发的请求缓存和数据库都不存在的数据(比如根据已知Id进行联想、猜测。
解决方案:1、缓存空值 2、使用布隆过滤器(推荐的)
缓存雪崩
指大量缓存热点key同时失效,大量请求瞬间到达数据库,造成数据库巨大压力或瘫痪。
解决方案:1、缓存预热 2、给每个热点缓存key附加一个较短的随机过期时间,不让多个热点同时失效;3、 Redis服务器,做成集群,提高性能和可用性 4、Redis服务使用Docker、云服务等,具备动态扩容、弹性服务等。
您可能感兴趣:
网友点评
提交