redis如何设置定时过期_redis 设置过期时间[通俗易懂]

redis如何设置定时过期_redis 设置过期时间[通俗易懂]1、设置过期时间功能:即对存储在redis数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的token或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。我们setkey的时候,都可以给一个expiretime,就是过期时间,通过过期时间我们可以指定这个key可以…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1、设置过期时间功能:即对存储在 redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的 token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。我们 set key 的时候,都可以给一个 expire time,就是过期时间,通过过期时间我们可以指定这个 key 可以存活的时间。

2、redis删除过期key策略:假设你设置了一批 key 只能存活1个小时,那么接下来1小时后,redis是怎么对这批key进行删除的?

定期删除+惰性删除

(1)定期删除:redis默认是每隔 100ms 就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。注意这里是随机抽取的。为什么要随机呢?假如 redis 存了几十万个 key ,每隔100ms就遍历所有的设置过期时间的 key 的话,就会给 CPU 带来很大的负载!

(2)惰性删除:定期删除可能会导致很多过期 key 到了时间并没有被删除掉。所以就有了惰性删除。假如过期key,靠定期删除没有被删除掉,还停留在内存里,除非系统去查一下那个 key,才会被redis给删除掉。这就是所谓的惰性删除。

注意:但是仅仅通过设置过期时间还是有问题的。我们想一下:如果定期删除漏掉了很多过期 key,然后你也没及时去查,也就没走惰性删除,此时会怎么样?如果大量过期key堆积在内存里,导致redis内存块耗尽了。怎么解决这个问题呢?

需要引入redis 内存淘汰机制的概念。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189230.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 配置监听_1521端口占用问题

    配置监听_1521端口占用问题声明:原创作品,出自“深蓝的blog”博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。深蓝的blog: 前提回现修改了主机名,由hyldb修改为hyl。问题现象配置监听,警告提示,如下所示:解决方法1、检查1521端口[root@hyl~]#netstat-a–查看端口占用情况,查明1521端口并未被占用ActiveInte

    2022年6月5日
    43
  • 西瓜视频地址解析_西瓜去水印免费

    西瓜视频地址解析_西瓜去水印免费json解析工具:https://www.json.cn/base64解析工具:https://www.sojson.com/base64.html1.先获取videoid2.通过videoid

    2022年8月2日
    5
  • 光流法测距

    光流法测距一.基于特征点的目标跟踪的一般方法基于特征点的跟踪算法大致可以分为两个步骤:1)探测当前帧的特征点;2)通过当前帧和下一帧灰度比较,估计当前帧特征点在下一帧的位置;3)过滤位置不变的特征点,余下的点就是目标了。二.光流法1.首先是假设条件:(1)亮度恒定,就是同一点随着时间的变化,其亮度不会发生改变。这是基本光流法的假定(所有光流法变种都必须满足),用于得到光流法基本方程;(2)小运动,这…

    2022年7月23日
    9
  • MySQL-深入分析MySQL ERROR 1045出现的原因

    MySQL-深入分析MySQL ERROR 1045出现的原因1

    2022年6月14日
    25
  • 手机软件测试的简单认识方法_什么都不会去做软件测试

    手机软件测试的简单认识方法_什么都不会去做软件测试接触手机软件测试也有三四个月了,讲讲自己目前的想法。仅仅是一点小认识,很多还不够成熟,不够全面,欢迎各位指正交流。废话不多说了,请戳下刚开始当然就是根据已有的测试用例来执行,接触较好后就觉得

    2025年9月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号