redis的三大问题

Redis的三大问题:

缓存穿透:

当数据库没这个key,然后不停的请求数据库
解决办法:缓存一个为空的值
使用布隆过滤器 bitmap

缓存雪崩:

缓存服务器挂掉,导致所有的请求打到数据库上,或者同时到过期时间,一大批的缓存过期,导致数据库压力陡增
解决办法:
使用热点数据,将值设置成永不过期,或者定时的将数据缓存进redis中

缓存击穿:

当某个key过期的时间,但是还没到缓存中,大量的请求打到数据库中
解决办法:
使用热点数据,将值设置成永不过期,或者定时的将数据缓存进redis中

Redis的删除策略:

https://www.cnblogs.com/liushoudong/p/12679174.html

定期删除:redis默认是每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。注意这里是随机抽取的。为什么要随机呢?假如redis存了几十万个key,每隔100ms就遍历所有的设置过期时间的key的话,就会给CPU带来很大的负载
惰性删除:当获取的时候查看是否过期,过期的话,删除key,会导致不用的数据一直在服务器种存在
定时删除:创建一个定时器,当key设置有过期时间,且过期时间到达时,由定时器任务立即执行对键的删除操作

优点:节约内存,到时就删除,快速释放掉不必要的内存占用
缺点:CPU压力很大,无论CPU此时负载量多高,均占用CPU,会影响redis
服务器响应时间和指令吞吐量
总结:用处理器性能换空间除

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容