脚本宝典收集整理的这篇文章主要介绍了Redis缓存那些事儿,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
2、缓存过期 && 缓存淘汰
缓存过期:给缓存内容设置一个超时时间,具体设置多长交给应用程序们去设置。
=> 定期删除: 随机选择一部分来清理,缓解内存压力。 缺点:某些键值对每次都能幸免于难,长时间霸占内存。
=> 惰性删除: 那些原来逃脱随机选择算法的键值,一旦遇到查询请求,发现已经超期,就立即删除。 缺点:被动式触发的,不查询就不会发生。导致某些键值一直逍遥法外,可以使用的内存空间却越来越少。
=> 内存淘汰策略: 8种。
3、缓存穿透 && 布隆过滤器
缓存穿透:某些请求,查询的数据不存在,也没法缓存,导致同样的请求来了每次都要去让MySQL白忙活一场。
=> 解决方法:将不会有结果的查询请求挡一下,不去查库。
=> 布隆过滤器 BloomFilter:
擅长从超大的数据集中快速告诉你查找的数据存不存在(悄悄告诉你,我的这位朋友有一点不靠谱,它告诉你存在的话不能全信,其实有可能是不存在的,不过它他要是告诉你不存在的话,那就一定不存在)。
4、缓存击穿 && 缓存雪崩
=> 缓存击穿:刚刚有一个热点数据到了过期时间,被删掉了,不巧的是随后就有对这个数据的大量查询请求来了,由于已经被删,所以请求都发到数据库。
=>缓存雪崩:一大批数据几乎同时过了有效期,然后又发生了很多对这些数据的请求,所以比起上一次这规模更大了。
=> 解决方案:在应用程序中,把键值的过期时间随机一下(设置的均匀一些,至少别让大量数据集体失效),还设置了热点数据永不过期。
以上是脚本宝典为你收集整理的Redis缓存那些事儿全部内容,希望文章能够帮你解决Redis缓存那些事儿所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。