当前位置: 首页 > news >正文

Redis key的过期时间和永久有效

 Redis key的过期时间和永久有效

设置键的过期时间

1. **使用 `EXPIRE` 命令**:
   `EXPIRE` 命令用于设置一个键的过期时间(以秒为单位)。

   **语法**:```shellEXPIRE key seconds```

 

  **示例**:```shellEXPIRE mykey 60```


   上述命令将 `mykey` 的过期时间设置为 60 秒。

 使用 `SET` 命令和 `EX` 参数:
   当创建键时,可以使用 `SET` 命令的 `EX` 参数直接设置过期时间。

   **语法**:```shellSET key value EX seconds```
   **示例**:```shellSET mykey "myvalue" EX 60```


   上述命令设置 `mykey` 的值为 `"myvalue"`,并设置其过期时间为 60 秒。

使用 `PEXPIRE` 命令:
   `PEXPIRE` 命令用于设置键的过期时间(以毫秒为单位)。

   **语法**:```shellPEXPIRE key milliseconds```
   **示例**:```shellPEXPIRE mykey 60000```


   上述命令将 `mykey` 的过期时间设置为 60,000 毫秒(即 60 秒)。

**使用 `SET` 命令和 `PX` 参数:


   同样地,可以使用 `SET` 命令的 `PX` 参数直接设置过期时间(以毫秒为单位)。

   **语法**:```shellSET key value PX milliseconds```

   **示例**:

   ```shellSET mykey "myvalue" PX 60000```


   上述命令设置 `mykey` 的值为 `"myvalue"`,并设置其过期时间为 60,000 毫秒(即 60 秒)。

 使用 `EXPIREAT` 命令:


   `EXPIREAT` 命令用于设置键在某个特定时间点过期(以 Unix 时间戳的秒为单位)。

   **语法**:```shellEXPIREAT key timestamp```

 

  **示例**:```shellEXPIREAT mykey 1629964800```


   上述命令设置 `mykey` 在 Unix 时间戳 1629964800 时(对应的 UTC 时间)过期。

使用 `PEXPIREAT` 命令


   `PEXPIREAT` 命令与 `EXPIREAT` 类似,但时间戳以毫秒为单位。

   **语法**:```shellPEXPIREAT key milliseconds_timestamp```
   **示例**:```shellPEXPIREAT mykey 1629964800000```


   上述命令设置 `mykey` 在 Unix 毫秒时间戳 1629964800000 时(对应的 UTC 时间)过期。

设置键为永久有效

如果想要使键永久有效(即没有过期时间),可以使用以下方法:

简单地设置键而不设置过期时间


   使用 `SET` 命令而不指定 `EX` 或 `PX` 参数,键将被设置为永久有效。

   **语法**:```shellSET key value```

   **示例**:

   ```shellSET mykey "myvalue"```


   上述命令将 `mykey` 设置为永久有效,不会过期。

移除现有键的过期时间


   如果键已经设置了过期时间,可以使用 `PERSIST` 命令将其变为永久有效。

   **语法**:```shellPERSIST key```

   **示例**:

   ```shellPERSIST mykey```


   上述命令将移除 `mykey` 的过期时间,使其永久有效。

总结

    

Redis是一种基于内存的高性能键值存储系统。在Redis中,key可以设置过期时间或者被永久保存。本文将对Redis中key的过期时间和永久有效的设置进行详细介绍。

  1. 过期时间的设置: 在Redis中,可以使用EXPIRE命令来设置key的过期时间。EXPIRE命令的语法为:EXPIRE key seconds,其中key是要设置过期时间的键名,seconds是过期时间的秒数。 例如,要将名为"username"的key设置为10秒后过期,可以使用如下命令: EXPIRE username 10

    另外,还可以使用PEXPIRE命令来设置key的过期时间,其语法为:PEXPIRE key milliseconds,其中key是要设置过期时间的键名,milliseconds是过期时间的毫秒数。 例如,要将名为"username"的key设置为100毫秒后过期,可以使用如下命令: PEXPIRE username 100

    在设置过期时间后,Redis会自动在指定时间后删除该key,因此可以在实现缓存策略或者定时任务调度等场景下使用。

  2. 永久有效的设置: 在Redis中,key可以通过不设置过期时间来永久有效。可以使用SET命令来设置一个永不过期的key,其语法为:SET key value。 例如,要设置名为"username"的key永久有效,可以使用如下命令: SET username "john"

    此时,该key将永不过期,除非手动删除或者重写该key的值。这种设置适用于一些长期有效的数据,如配置信息、用户信息等。

  3. key的过期时间和永久有效的总结:

    • 通过EXPIRE命令可以设置key的过期时间,通过PEXPIRE命令可以设置key的过期时间(毫秒为单位)。
    • 设置过期时间后,在指定时间后Redis会自动删除该key。
    • 可以通过SET命令将key设置为永久有效,即不设置过期时间。
    • 永久有效的key除非手动删除或者重写其值,否则将一直存在Redis中。
    • 过期时间和永久有效的设置可以根据实际需求来选择合适的方式。

            Redis提供了灵活的key过期时间和永久有效的设置方式,可以根据具体的业务需求来选择合适的方式。同时,合理设置过期时间可以有效地管理内存,避免数据的无效存储。

   

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Maven的相关配置和语法解释
  • 如何处理在学校Linux连接不上服务器
  • 培训第三十七天(Dockerfile与registry)
  • 设计模式—工厂模式
  • Redux的中间件原理分析
  • R 语言学习教程,从入门到精通,R 绘图 中文支持(25)
  • C语言迷宫制造
  • 写个IDEA插件
  • C语言基础(二十)
  • OpenCV几何图像变换(9)仿射变换函数warpAffine()的使用
  • 【iOS安全】iPhone8 iOS14.4.2 越狱教程
  • ubuntu22.04安装redis
  • 免费分享:2000-2020年MODIS中国积雪物候数据集(附下载办法)
  • [论文阅读] mobile aloha实验部分
  • 一. 初始 Spring Boot
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 08.Android之View事件问题
  • android图片蒙层
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • QQ浏览器x5内核的兼容性问题
  • quasar-framework cnodejs社区
  • windows下使用nginx调试简介
  • 诡异!React stopPropagation失灵
  • kubernetes资源对象--ingress
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​什么是bug?bug的源头在哪里?
  • # centos7下FFmpeg环境部署记录
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #### go map 底层结构 ####
  • #includecmath
  • #QT(串口助手-界面)
  • #考研#计算机文化知识1(局域网及网络互联)
  • (备份) esp32 GPIO
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (回溯) LeetCode 46. 全排列
  • (六)激光线扫描-三维重建
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • .net 调用php,php 调用.net com组件 --
  • .Net环境下的缓存技术介绍
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • .vimrc 配置项
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @Pointcut 使用
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [android] 切换界面的通用处理
  • [Android]使用Android打包Unity工程
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [android学习笔记]学习jni编程
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn