AI工具人
提示词工程师

Redis源码剖析之数据过期(expire)

我之前统计过我们线上某redis数据被访问的时间分布,大概90%的请求只会访问最新15分钟的数据,99%的请求访问最新1小时的数据,只有不到千分之一的请求会访问超过1天的数据。我们之前这份数据存了两天(近500g内存数据),如果算上主备的话用掉了120多个Redis实例(一个实例8g内存),光把过期时间从2天改成1天就能省下60多个redis实例,而且对原业务也没有啥太大影响。

当然Redis已经实现了数据过期的自动清理机制,我所要做的只是改下数据写入时的过期时间而已。假设Redis没有数据过期的机制,我们要怎么办? 大概一想就知道很麻烦,仔细想的话还得考虑很多的细节。所以我觉得过期数据在缓存系统中是不起眼但非常重要的功能,除了省事外,它也能帮我们节省很多成本。接下来我们看下Redis中是如何实现数据过期的。

实时清理

众所周知,Redis核心流程是单线程执行的,它基本上是处理完一条请求再出处理另外一条请求,处理请求的过程并不仅仅是响应用户发起的请求,Redis也会做好多其他的工作,当前其中就包括数据的过期。

赞(1) 打赏
未经允许不得转载:XINDOO » Redis源码剖析之数据过期(expire)
描述文字

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫