Redis 过期键的设置、获取和删除过期时间
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,Redis 过期键的设置、获取和删除过期时间设置过期默认情况下键是没有生存时间的,也就是永不过期,除非清空内存。设置的键的生存时间也很容易,可以通过4个命令设置(任选一即可):EXPIRE、PEXPI
千家信息网最后更新 2025年01月20日Redis 过期键的设置、获取和删除过期时间
Redis 过期键的设置、获取和删除过期时间
设置过期
默认情况下键是没有生存时间的,也就是永不过期,除非清空内存。
设置的键的生存时间也很容易,可以通过4个命令设置(任选一即可):EXPIRE、PEXPIRE、EXPIREAT、PEXPIREAT命令,这4个命令看起来不同但是背后实现原理都是一样的。常用的其实就是EXPIRE和PEXPIRE这两个,前者是以秒设置过期时间,后者是以毫秒。
命令 | 说明 |
---|---|
EXPIRE key #s | 将KEY的生存时间设置为#秒 |
PEXPIRE key #ms | 将KEY的生存时间设置为#毫秒 |
EXPIREAT key timestamp | 将KEY的生存时间设置为UNIX时间戳,单位为秒 |
PEXPIREAT key timestamp | 将KEY的生存时间设置为UNIX时间戳,单位为毫秒 |
上面这4个命令只是单位和表现形式上的不同,但实际上EXPIRE、PEXPIRE以及EXPIREAT命令的执行最后都会使用PEXPIREAT来实行。
比如使用EXPIRE来设置KEY的生存时间为N秒,那么后台是如何运行的呢:
它会调用PEXPIRE命令把N秒转换为M毫秒
然后获取当前的UNIX时间单位也是毫秒
- 把当前UNIX时间加上M毫秒传递给PEXPREAT
给键设置了过期时间,这个时间保存在一个字典里,也是键值结构,键是一个指针,指向真实的键,而值这是一个长整型的UNIX时间。
以秒来设置,设置aaa这个键1秒后过期,10秒中以后再获取aaa这个键则返回空。
192.168.20.66:7000> set aaa 123-> Redirected to slot [10439] located at 192.168.20.62:7000OK192.168.20.62:7000> get aaa"123"192.168.20.62:7000> expire aaa 10(integer) 1192.168.20.62:7000> ttl aaa(integer) 7192.168.20.62:7000> ttl aaa(integer) 3192.168.20.62:7000> ttl aaa(integer) -2192.168.20.62:7000> get aaa(nil)
以毫秒来设置,设置bbb这个键10000毫秒后过期。
192.168.20.62:7000> set bbb 898-> Redirected to slot [5287] located at 192.168.20.65:7000OK192.168.20.65:7000> pexpire bbb 10000(integer) 1192.168.20.65:7000> ttl bbb(integer) 6192.168.20.65:7000> ttl bbb(integer) 2192.168.20.65:7000> ttl bbb(integer) -2192.168.20.65:7000> get bbb(nil)
获取键的过期时间
查看一个键的生存时间(以秒来显示):
ttl key
另外还有一个命令是pttl key这个是以毫秒显示。
过期时间返回值的说明
| seconds值 | 说明 |
| -2 | 过期且已删除 |
| -1 | 没有过期时间设置,即永不过期 |
| >0 | 表示距离过期还有多少秒或者毫秒 |
清除键的过期时间
可以使用PERSIST命令移除一个键的过期时间:
192.168.20.65:7000> set aaa hello-> Redirected to slot [10439] located at 192.168.20.62:7000OK192.168.20.62:7000> expire aaa 100(integer) 1192.168.20.62:7000> ttl aaa(integer) 97192.168.20.62:7000> persist aaa(integer) 1192.168.20.62:7000> ttl aaa(integer) -1192.168.20.62:7000> get aaa"hello"
时间
命令
单位
不同
永不
两个
也就是
内存
原理
只是
可以通过
后台
字典
实际
实际上
就是
常用
形式
情况
指向
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数学作业拍照批改软件开发
cenos如何查服务器配置
电子商务网络安全案列分析
blog数据库设计
电脑计算机网络技术教程
重庆物流软件开发平台
软件开发技能测评指标
交易猫上怎么找游戏服务器
web连接数据库代码
网站服务器 负载均衡
汽车mpu软件开发
查涛数据库
wps怎么给人物划分数据库
山西ios软件开发诚信企业推荐
大华智能服务器安装
重点网络安全保卫单位
idea数据库逆向生成代码
在数据库中set什么意思
方舟刷新不出服务器
腾讯云轻量服务器开25端口
未来之役如何看之前服务器
巴中市网络安全吗
错删数据库表数据
邢台廊坊财务软件网络技术
上海潮流软件开发价格
网络技术岗面试题
邮箱接受服务器
模拟器玩国际服服务器
五华服务器建设
乐逗竞技软件开发官方