简单的事情,便不那么简单!
把redis作为缓存使用已经是司空见惯,但是使用redis后经典的几个问题如下:
缓存和数据库间数据一致性问题
缓存穿透
- 当根据Redis key在缓存中查询后,不存在对应Value,就应该会在后端系统如DB中去查找,该Key的并发请求量一旦变大,那么就会对DB造成很大的压力
- 解决办法有:
- nginx、或者业务层风险控制,将恶意穿透情况排除在外;
- 对查询结果为空的情况依然进行缓存,但缓存时间会设置得很短,一般是几分钟;
缓存击穿问题(单个key被高并发)
缓存雪崩问题(多个key被高并发)
缓存失效:
- 按时失效
- 事件失效
- 后端主动更新
网友评论