首页 > 编程知识 正文

redis设置过期时间,redis怎么设置过期时间

时间:2023-05-03 22:34:53 阅读:285722 作者:4581

Redis 中有个设置时间过期的功能,即对存储在 redis 数据库中的值可以设置一个过期时间。

作为一个缓存数据库,这是非常实用的。

比如,一般项目中的 Token 或是 Cookie 信息,尤其是短信验证码,都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。

我们 set key 的时候,都可以给一个 expire time,也就是过期时间,这样就指定了这个 key 可以存活的时间。

假设我们设置了一批只能存活1个小时的 key,那么1小时后,redis 是怎么对这批 key 进行删除的?

答案是:定期删除 + 惰性删除

定期删除:redis 默认每隔 100ms 就 随机抽取 那些设置了过期时间的 key,检查其是否过期,如果过期,就删除。注意,这里是随机抽取的。为什么要随机呢?想想,假如 redis 存了几十万个 key ,每隔 100ms 就遍历所有设置了过期时间的 key 的话,会给 CPU 带来很大的压力 惰性删除 :定期删除可能会导致很多过期的 key 到了时间并没有被删除掉,所以就有了惰性删除。假如过期 key,靠定期删除没有被删除掉,还缓存在内存里,此时当程序去查那个 key 时,redis 如果判断过期,就会给删除掉,这就是所谓的惰性删除

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。