Redis 用作缓存

Redis 用作缓存需要在意一下几个方面

  • 缓存数据库的数据不一致问题
  • 缓存雪崩、击穿、穿透
  • 缓存替换策略
  • Redis key 过期策略

前三点可以参考:极客时间 Redis核心技术与实战 笔记(实践篇 缓存)

Redis key 过期策略

不采用定时删除,而是惰性删除 + 定期删除

  • 定期删除:Redis默认每个100ms随机抽取进行检查。缺点:如果只采用定期删除策略,会导致很多 key 到时间没有删除。
  • 惰性删除:弥补定期删除的问题,也就是说在你获取某个key的时候,Redis会检查一下,这个key如果设置了过期时间那么是否过期了?如果过期了此时就会删除。

这里涉及到一个主从库读取的问题:

如果客户端从主库上读取留存的过期数据,主库会触发删除操作,此时,客户端并不会读到过期数据。

但是,从库本身不会执行删除操作,如果客户端在从库中访问留存的过期数据,从库并不会触发数据删除。

如果你使用的是 Redis 3.2 之前的版本,会返回过期数据。在 3.2 版本后,Redis 做了改进,如果读取的数据已经过期了,从库虽然不会删除,但是会返回空值,这就避免了客户端读到过期数据。所以,在应用主从集群时,尽量使用 Redis 3.2 及以上版本。

面试题:系统在10:05 设置一个值,并给出5分钟的过期时间,系统刚刚set完之后redis集群崩溃,10:11分系统重启成功,那么redis中set的值是否还存在?

参考答案:看重启后恢复情况(AOF、RDB)以及过期删除情况

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值