文章目录

Redis缓存出现的问题
Redis是缓存数据库,我们经常需要把MySQL中的数据缓存到Redis中,来提高查询效率。
但是随之而来也会出现一些问题,比如缓存雪崩、缓存击穿、缓存穿透,以及数据库缓存一致性问题。
🙎♂️面试官:什么是缓存雪崩?
🙋♂答:
简名达意。雪崩,就是大量缓存数据在同一时间失效,或者Redis宕机。此时有大量的用户请求无法在Redis处理。直接访问数据库,导致数据库压力剧增,可能造成数据库宕机、等一系列连锁反应,最终整个系统崩溃,这就是缓存雪崩的问题。
🙎♂️面试官:怎样解决缓存雪崩?
🙋♂答:
针对大量数据同时过期而引发的缓存雪崩问题,常见的应对方法有下面这几种:
- 均匀设置过期时间
由于缓存雪崩是同一时间大量数据失效,那么给这些数据的过期时间加上一个随机数,这样就保证数据不会在同一时间过期。 - 双缓存策略
设置两个缓存,当主缓存失效,访问备用缓存的数据。当然,备用缓存的数据过期时间要相应的长一些。 - 构建多级缓存
增加本地缓存,在存储层前加一级屏障,保持服务的整体可用。