简介

 

redis作为应用与数据库的中间缓存,用户访问数据源会首先访问redis,查询无数据则直接查询数据库,查询到后,返回的数据会加载到redis里面。在使用的过程中,redis在并发场景,存在缓存穿透,缓存击穿和缓存雪崩等问题。

缓存穿透

问题

当访问key不存在时候,请求会一直打在数据库上,增加了数据库的压力。

redis的几种并发场景的问题及解决策略_缓存

解决策略

一 可以先缓存空值key

二 过滤不正常请求

缓存击穿

问题

当key过期后,大量请求直接压在数据库上,可能导致数据库崩溃

redis的几种并发场景的问题及解决策略_redis_02

解决策略

一 预加载热门的key

二 适当延长key的时间

三 设置锁(效率低)

redis的几种并发场景的问题及解决策略_数据库_03

缓存雪崩

问题

缓存的key大量过期,可能导致数据缓存更新失效

redis的几种并发场景的问题及解决策略_redis_04

解决策略

一 将key失效的时间分散开

二 使用锁或者队列

三 定时更新key