热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Redis自动过期使用EXPIRE、PEXPIRE:设置生存时间

这里写目录标题12.1EXPIRE、PEXPIRE:设置生存时间12.1.1更新键的生存时间12.1.2其他信息参考目录12.1EXPIRE、PEXPIREÿ


这里写目录标题

    • 12.1 EXPIRE、PEXPIRE:设置生存时间
    • 12.1.1 更新键的生存时间
    • 12.1.2 其他信息
    • 参考目录


12.1 EXPIRE、PEXPIRE:设置生存时间

        用户可以通过执行EXPIRE命令或者PEXPIRE命令为键设置一个生存时 间(Time To Live,TTL):键的生存时间在设置之后就会随着时间的 流逝而不断地减少,当一个键的生存时间被消耗殆尽时,Redis就会移 除这个键。

        Redis提供了EXPIRE命令用于设置秒级精度的生存时间,它可以让键在 指定的秒数之后自动被移除:

在这里插入图片描述

        而PEXPIRE命令则用于设置毫秒级精度的生存时间,它可以让键在指定 的毫秒数之后自动被移除:

在这里插入图片描述

        EXPIRE命令和PEXPIRE命令在生存时间设置成功时返回1;如果用户给 定的键并不存在,那么命令返回0表示设置失败。

        以下是一个使用EXPIRE命令的例子:
在这里插入图片描述

        上面的代码通过执行EXPIRE命令为msg键设置了5s的生存时间:

        ·如果我们在5s之内访问msg键,那么Redis将返回msg键的值"hello world"。

        ·如果我们在5s之后访问msg键,那么Redis将返回一个空值,因为msg键 已经自动被移除了。

在这里插入图片描述

        以下则是一个使用PEXPIRE命令的例子:
在这里插入图片描述

        表12-2展示了number键从设置生存时间到被移除的整个过程。

在这里插入图片描述


12.1.1 更新键的生存时间

        当用户对一个已经带有生存时间的键执行EXPIRE命令或PEXPIRE命令 时,键原有的生存时间将会被移除,并设置新的生存时间。

        举个例子,如果我们执行以下命令,将msg键的生存时间设置为10s:

在这里插入图片描述

        然后在10s之内执行以下命令:

在这里插入图片描述

        那么msg键的生存时间将被更新为50s,并重新开始倒数,表12-3展示了 这个更新过程。

在这里插入图片描述


12.1.2 其他信息

        复杂度:EXPIRE命令和PEXPIRE命令的复杂度都为O(1)。

        版本要求:EXPIRE命令从Redis 1.0.0版本开始可用,PEXPIRE命令从 Redis 2.6.0版本开始可用。


参考目录

绝大多数 内容来自 Redis使用手册 (黄健宏 著) 第12章 自动过期


推荐阅读
  • 利用RabbitMQ实现高效延迟任务处理
    本文详细探讨了如何利用RabbitMQ实现延迟任务,包括其应用场景、实现原理、系统设计以及具体的Spring Boot实现方式。 ... [详细]
  • 本文探讨了随着并发需求的增长,MySQL数据库架构如何从简单的单一实例发展到复杂的分布式系统,以及每一步演进背后的原理和技术解决方案。 ... [详细]
  • 本文深入探讨了Redis中的两种主要持久化方式——RDB(Redis Database)和AOF(Append Only File),并详细解析了两者的实现机制、优缺点以及在实际应用中的选择策略。 ... [详细]
  • 本文介绍了当遇到Windows 10更新失败或需要撤回更新时的解决方法,包括通过命令行清除更新缓存和使用系统还原功能等步骤。 ... [详细]
  • 本文提供了一套实用的方法论,旨在帮助开发者构建能够应对高并发请求且易于扩展的Web服务。内容涵盖了服务器架构、数据库管理、缓存策略以及异步处理等多个方面。 ... [详细]
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 本文将详细介绍如何使用Markdown来创建流程图,包括定义元素、连接元素以及构建完整的流程图实例,如Web服务API请求流程图和网页登录流程图。 ... [详细]
  • Win10运行仙剑5提示‘缺少d3dx9_30.dll’的解决方案
    当在Windows 10系统上尝试运行《仙剑奇侠传5》时,如果遇到‘找不到d3dx9_30.dll’的错误提示,可以通过本文提供的两种有效方法轻松解决这一常见问题。 ... [详细]
  • Docker基础指南与核心命令解析
    本文全面介绍了Docker的基本概念、安装方法、核心命令及其用法,并深入探讨了Docker容器的数据卷管理及应用部署策略,适合初学者快速掌握Docker技术。 ... [详细]
  • 如何使用C#对TCP传输的数据进行加密以防止恶意重放攻击
    近期遇到一些恶意用户利用特定工具频繁向服务器发起连接请求,特别是登录和注册操作,导致服务器积累了大量无用数据。普通的加密方法虽然能保护数据不被篡改,但无法阻止数据被重复利用。本文探讨了有效对抗此类恶意行为的方法。 ... [详细]
  • FreeBSD作为Berkeley Software Distribution (BSD)的一个关键分支,其发展历程深刻影响了现代操作系统的设计。本文将探讨FreeBSD从早期版本到最新版本的技术进步及其对计算行业的贡献。 ... [详细]
  • socket函数SOCKET()我们使用系统调用socket()来获得文件描述符:#include#includei ... [详细]
  • Redis Key管理:常用命令与命名最佳实践
    本文介绍了Redis中用于管理key的多个重要命令,包括查询、修改和删除等操作,并提供了关于key命名的最佳实践建议。 ... [详细]
  • 深入理解Redis哨兵模式及缓存策略
    本文介绍了Redis哨兵模式的基本原理和配置方法,以及如何应对缓存穿透、缓存击穿和缓存雪崩等问题,旨在提高Redis服务的稳定性和可用性。 ... [详细]
author-avatar
mobiledu2502876867
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有