返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >redis如何设置key的有效期
  • 810
分享到

redis如何设置key的有效期

2024-04-02 19:04:59 810人浏览 泡泡鱼
摘要

目录Redis设置key的有效期Key命令彻底理解redis有效期问题1.过期时间跟着key走,与值无关2.设置永久有效期3.rename命令对有效期影响4.刷新过期时间5.过期精度

redis设置key的有效期

Key命令

设置key的过期时间。

查询当前所有的key

    

  • expire key second:设置key的过期时间

    

若执行ttl key 显示为-2 则说明改值不存在缓存

             

显示为-1则是持久化的 (不会失效) 

              

若将其设置了失效时间 那么就会显示剩余的失效时间

             

彻底理解redis有效期问题

EXPIRE key seconds

起始版本:1.0.0

时间复杂度:O(1)

返回值:1 如果成功设置过期时间;0 如果key不存在或者不能设置过期时间。

为给定 key设置生存时间,当 key过期时(生存时间为 0),它会被自动删除。

1.过期时间跟着key走,与值无关

在Redis中,带有过期时间的key被称为『易失的』(volatile)。 过期时间可以通过使用 DEL命令来删除整个key来移除,或者被 SET和 GETSET命令覆写(overwrite),这意味着,如果一个命令只是修改(alter)一个带过期时间的 key的值而不是用一个新的 key值来代替(replace)它的话,那么过期时间不会被改变。比如说,对一个 key执行 INCR命令,对一个列表进行 LPUSH命令,或者对一个哈希表执行 HSET命令,这类操作都不会修改 key本身的过期时间。

2.设置永久有效期

使用PERSIST命令可以清除超时,使其变成一个永久的key。

3.rename命令对有效期影响

如果key被RENAME命令修改,相关的超时时间会转移到新key上面。

如果key被RENAME命令修改,比如原来就存在Key_A,然后调用RENAME Key_B Key_A命令,这时不管原来Key_A是永久的还是设置为超时的,都会由Key_B的有效期状态覆盖。

4.刷新过期时间

对已经有过期时间的key执行EXPIRE操作,将会更新它的过期时间。

5.过期精度

在 Redis 2.4 及以前版本,过期期时间可能不是十分准确,有0-1秒的误差。

从 Redis 2.6 起,过期时间误差缩小到0-1毫秒。

6.外界因素对过期时间影响

Keys的过期时间使用Unix时间戳存储(从Redis 2.6开始以毫秒为单位)。这意味着即使Redis实例不可用,时间也是一直在流逝的。

要想过期的工作处理好,计算机必须采用稳定的时间。 如果你将RDB文件在两台时钟不同步的电脑间同步,有趣的事会发生(所有的 keys装载时就会过期)。

即使正在运行的实例也会检查计算机的时钟,例如如果你设置了一个key的有效期是1000秒,然后设置你的计算机时间为未来2000秒,这时key会立即失效,而不是等1000秒之后。

7.Redis如何淘汰过期的keys

Redis keys过期有两种方式:被动和主动方式。

当一些客户端尝试访问它时,key会被发现并主动的过期。

当然,这样是不够的,因为有些过期的keys,永远不会访问他们。无论如何,这些keys应该过期,所以定时随机测试设置keys的过期时间。所有这些过期的keys将会删除。

具体就是Redis每秒10次做的事情:

1).测试随机的20个keys进行相关过期检测。

2).删除所有已经过期的keys。

3).如果有多于25%的keys过期,重复步奏1.

这是一个平凡的概率算法,基本上的假设是,我们的样本是这个密钥控件,并且我们不断重复过期检测,直到过期的keys的百分比低于25%,这意味着,在任何给定的时刻,最多会清除1/4的过期keys。

8.在复制AOF文件时如何处理过期

为了获得正确的行为而不牺牲一致性,当一个key过期,DEL将会随着AOF文字一起合成到所有附加的slaves。在master实例中,这种方法是集中的,并且不存在一致性错误的机会。

然而,当slaves连接到master时,不会独立过期keys(会等到master执行DEL命令),他们任然会在数据集里面存在,所以当slave当选为master时淘汰keys会独立执行,然后成为master。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: redis如何设置key的有效期

本文链接: https://lsjlt.com/news/161825.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • redis如何设置key的有效期
    目录redis设置key的有效期Key命令彻底理解redis有效期问题1.过期时间跟着key走,与值无关2.设置永久有效期3.rename命令对有效期影响4.刷新过期时间5.过期精度...
    99+
    2024-04-02
  • redis怎么设置key的有效期
    这篇文章主要介绍“redis怎么设置key的有效期”,在日常操作中,相信很多人在redis怎么设置key的有效期问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis怎么设置key的有效期”的疑惑有所帮助!...
    99+
    2023-06-26
  • Redis设置key的过期时间
    Redis中可以设置数据的过期时间,一旦过期自动删除数据。 1.设置过期时间 expire 127.0.0.1:6379> set name "ok" //设置10s后过期,e...
    99+
    2023-01-28
    Redis设置key过期时间 Redis key过期时间
  • redis中的key如何设置
    这篇文章主要介绍了redis中的key如何设置,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。Redis SET命令用于设置给定key的值。如果k...
    99+
    2024-04-02
  • redis如何设置key缓存失效时间
    Redis中可以使用`EXPIRE`命令设置一个key的缓存失效时间。命令格式如下:```EXPIRE key seconds```...
    99+
    2023-09-05
    redis
  • Redis中怎么设置过期时间的Key
    Redis中怎么设置过期时间的Key,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、 DEL/SET/GETSET等命令会清除过期时间在使用...
    99+
    2024-04-02
  • 怎么在redis中设置key的过期时间
    在redis中设置key过期时间的方法:1.启动redis服务;2.登录redis数据库;3.执行命令设置过期时间;具体步骤如下:首先,在命令行中启动redis服务;service redis start mysql服务启动后,输入用户名,...
    99+
    2024-04-02
  • redis将一个key设置为永不过期
      这次介绍三个 redis 命令: Expire 命令用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。 PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。 TTL 命令以秒为单位返回 ke...
    99+
    2014-05-11
    redis将一个key设置为永不过期
  • localStorage如何设置有效期和过期时间
    这篇文章将为大家详细讲解有关localStorage如何设置有效期和过期时间,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现思路在Storage原型上新增两个方法setCanExpireLocal,ge...
    99+
    2023-06-29
  • Redis中key过期如何解决
    这篇文章给大家介绍Redis中key过期如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。初步调查受影响的团队和缓存团队开始进行初步的调查。我们发现延迟增加与现在正在发生的key清...
    99+
    2024-04-02
  • redis如何监控失效的key
    小编给大家分享一下redis如何监控失效的key,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!先来看一个问题:如何处理订单过期自动取消,比如下单30分钟未支付自动更改订单状态?解决方案:可以利...
    99+
    2024-04-02
  • redis如何获取key过期时间
    Redis提供了`TTL`命令来获取key的剩余过期时间。可以使用以下命令来获取key的剩余过期时间:```TTL key```其中...
    99+
    2023-09-04
    redis key
  • redis如何删除过期key策略
    在Redis中删除过期key有两种策略: 主动删除:Redis会在每次访问key时检查其是否过期,如果过期则立即删除。这种方式会...
    99+
    2024-04-02
  • redis如何设置过期时间
    redis如何设置过期时间?相信很多新手小白还没学会这个技能,通过这篇文章的总结,希望你能学会这个技能。以下资料是实现的步骤。1、Redis中key的过期时间通过EXPIRE key seconds命令来设...
    99+
    2024-04-02
  • redis过期策略如何设置
    redis 过期策略有两种:定期删除和惰性删除。定期删除在后台主动扫描数据库,立即删除过期的键值对,节省内存空间,但可能影响性能。惰性删除只有在客户端访问已过期的键值对时才会删除,性能开...
    99+
    2024-06-12
    redis 键值对
  • 使用Redis如何设置永久有效
    目录如何设置永久有效Redis设置密码1. 命令行设置密码2. 配置文件设置密码如何设置永久有效 PERSIST key 持久化 key 和 value Redis 在默认情况下会采...
    99+
    2024-04-02
  • 【Redis】获取没有设置ttl的key脚本
    一 前言       在运维Redis的时候,总会遇到使用不规范的业务设计,比如没有对key设置ttl,进而导致内存空间吃紧,通常的解决方法是在slave上du...
    99+
    2024-04-02
  • 怎么设置session的有效期
    在设置session的有效期之前,需要先确保您的应用程序已经启用了session功能。要设置session的有效期,您可以使用以下方...
    99+
    2023-08-18
    session
  • php redis如何设置过期时间
    本文将为大家详细介绍“php redis如何设置过期时间”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php redis如何设置过期时间”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一...
    99+
    2023-06-06
  • redis如何设置不过期时间
    在 Redis 中设置键不过期的方法有两种:1. 不设置过期时间:在设置键时,不指定过期时间参数即可。例如使用 `SET key v...
    99+
    2023-09-05
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作