导航

Redis 穿透和雪崩

Posted on 2017-11-02 21:46  耍流氓的兔兔  阅读(330)  评论(0编辑  收藏  举报

 

Redis穿透

出现原因:频繁的查询一个不存在的数据,由于缓存不命中,每次都要查询持久层,从而失去缓存保护后端的意义

解决方法:

  部署过滤器拦截:

    将数据库中数据的存在的Id存入列表,放入缓存中,每次先判断要查询的数据(通过sismember key member)是否存在,如果存在,就去持久层进行查询,否则,不会进入持久层

Redis雪崩

出现原因:缓存层在短时间内大量的数据失效,大量数据请求到达持久层,持久层的调用量暴增,造成持久层负担不了的情况

解决方法:

  缓存失效时间均匀分布:

    将数据的失效时间随机到一段时间区间内,避开大量数据同时失效的情况,减少持久层的频繁调用