redis知识点总结

数据过期删除策略


Redis的过期删除策略:惰性删除 + 定期删除两种策略进行配合使用

定期删除
每隔一段时间,对部分key进行检查,删除过期的key

惰性删除
key到过期时间后,不做任何操作,下次用到key时,再检查是否过期;过期则删除;没过期则返回

优点 :使用的时候再去检查是否过期,可以减少key过期检查的次数,节约CPU资源
缺点 :如果key已经过期,但是一直没使用,key会一直占用内存中;随着数量越来越多,会耗费内存资源

布隆过滤器

防止缓存穿透的方案

大量请求中key不存在时(如:恶意攻击)

方案1.到redis没找到,去数据找也没找到,将null作为key的值存入redis中,防止相同的key再请求时,redis就能返回(当无效key非常多时,会占用大量内存)

方案2.使用布隆过滤器,将数据库中的key的哈希值放入二进制向量表(1表示存在),当数据请求时,先用布隆过滤判断数据库中是否存在key,不存在则直接返回

防止缓存雪崩的方案

当缓存中的大量key在同时过期/redis服务器宕机,会有大量请求到达数据库,会压垮数据库。

缓存雪崩的解决方案:

key的过期时间后面加上一个随机数(比如随机1-5分钟),让key均匀的过期时间均匀分布

用队列或者锁的方式去数据库查询,控制去数据库查询的线程数量,降低并发

热点数据可以考虑不失效,后台异步更新缓存,适用于不严格要求缓存一致性的场景。

双key策略,主key设置过期时间,备key不设置过期时间,当主key失效时,直接返回备key值。

构建缓存高可用集群(针对缓存服务故障情况)。

当缓存雪崩发生时,服务熔断、限流、降级等措施保障。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值