数据库

缓存(Redis)面试问题总结

2019-01-11  本文已影响0人  Zeaone

一、 二八定律

    网站访问数据的特点大多数呈现在"二八定律":80%的业务访问集中在20%的数据上。这时为了减轻数据的压力和提高网站的数据访问速度,则可以使用缓存机制来优化网站。

二、热数据冷数据温数据

   数据的冷热是根据数据被访问的频率来决定的,被频繁访问的数据被存在快速的存储器(热数据),    访问频率较低的被称为温数据,访问量极少的则称为冷数据

三、缓存雪崩

    概念:指缓存设置的过期时间相同,导致所有缓存在同一时间全部过期,给后端DB造成巨大的查询压力

    解决:设置不同的缓存过期时间,先固定一个过期时间,实际缓存过期时间可在此基础上增加一个随机时间。(随机时间可以设置的长一些,比如1-7分钟)

四、缓存穿透

    概念:,缓存穿透指的是,每次查询都会无法在DB中命中,有可能是恶意发起的访问。

    发现:可在代码中进行统计,包括 ,访问总次数,缓存命中次数,DB查询次数,若发现DB查询次数非常接近访问总次数,则说明出现了缓存穿透的情况。

    解决:

1)缓存空数据:若此次访问DB中没有命中(即返回的数据为(NULL)空),也将结果放入缓存中,即下次访问命中缓存,返回空数据。但如此一来会导致缓存中出现大量的无用NULL数据,可以给值为NULL的数据设置一个较短的缓存时间来解决。此种方法还会导致数据不一致的问题。

2)布隆过滤器:先将存在的数据存入布隆过滤器,进行首次的过滤,若布隆过滤器中不存在则直接返回NULL。

上一篇 下一篇

猜你喜欢

热点阅读