如何理解缓存中逻辑过期时间-通俗介绍

 想象一下超市里的牛奶

1.  物理过期时间 (真正的保质期):
    牛奶盒上印着一个日期,比如“2023年10月1日”。到了这个日期之后,牛奶真的会变质、发酸,喝下去会拉肚子。这个日期是硬性的、物理上的过期时间。

2.  逻辑过期时间 (商家设定的促销期):
    超市经理发现,牛奶在真正过期前的3天(比如9月28日)就开始不好卖了,因为顾客都想买更新鲜的。
    于是,他定了个规矩:“所有牛奶在保质期到期前3天,就贴上黄色标签,打5折出售。”

这个 “保质期前3天” 就是一个逻辑过期时间

所以,什么是逻辑过期时间?

逻辑过期时间并不是东西真的坏了,而是我们【设定】的一个时间点,到了这个点就触发某种【逻辑操作】

它不关心东西本身是否物理失效,只关心我们的业务规则或程序逻辑。

 在技术世界里的应用(比如缓存)

这是逻辑过期时间最常用的场景。我们再举个例子:

场景:一个新闻APP的首页热点新闻列表。
问题:每次用户打开APP都去数据库查最新新闻,数据库压力巨大,而且新闻其实1分钟更新一次就够了,不需要实时更新。

如何用逻辑过期时间解决?

1.  设定逻辑过期时间:我们规定,缓存里的新闻数据有效期是1分钟。
2.  操作流程:
       第一秒: 用户A打开APP,程序发现缓存里没有新闻(或者已经过期),于是去数据库查询最新的新闻,存入缓存,并记录当前时间(例如 10:00:00),并设定逻辑过期时间为 10:01:00。然后把数据返回给用户A。
       第卅秒: 用户B打开APP,程序检查缓存:当前时间是 10:00:30,还没到逻辑过期时间 10:01:00。于是程序认为数据还有效,直接返回缓存里的旧数据。速度飞快,数据库毫无压力。
       第六十一秒:用户C打开APP,程序检查缓存:当前时间是 10:01:01,已经超过了设定的逻辑过期时间 10:01:00。于是程序认为数据“逻辑上”已过期。
           这时,它不会立刻删除缓存数据。
           它会立刻返回当前(稍旧)的缓存数据给用户C(保证用户最快看到内容,哪怕不是最新的)。
           同时,它悄悄地启动一个后台线程,去数据库拉取最新的新闻数据,更新缓存,并重新设置一个新的逻辑过期时间(例如 10:02:01)。

逻辑过期时间的核心好处:

1.  性能极高: 几乎所有用户请求都可以直接读取缓存,响应速度极快。
2.  防止“缓存击穿”: 即使缓存数据逻辑上过期了,在后台更新完成前,它依然有数据可以返回给用户,避免了大量用户同时因为缓存失效而直接访问数据库,导致数据库崩溃。

 总结一下

简单说,逻辑过期时间就是一个“闹钟”。闹钟响了(时间到了),不代表牛奶坏了,而是提醒你:“嘿,该去执行我们预定好的那个操作了!”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值