Redis键过期相关操作

本文详细介绍了Redis中如何为键设置生存时间和过期时间,包括使用EXPIRE、PEXPIRE命令设置秒级和毫秒级生存时间,以及在创建键时通过EX和PX选项设定过期时间。同时,还讲解了如何通过EXPIREAT和PEXPIREAT命令设置基于UNIX时间戳的过期时间,以及利用TTL和PTTL命令检查键的剩余生存时间。这些操作有助于实现自动化的键管理,提高数据存储的效率和准确性。
摘要由CSDN通过智能技术生成


Redis提供了为键设置过期时间的功能,可以让键在指定的时间之后自动被移除,从而避免了需要在指定的时间内手动删除操作的麻烦。

一、设置键的生存时间

通过 EXPIRE 命令或者 PEXPIRE 命令可以为键设置一个生存时间,当一个键的生存时间消耗殆尽时,Redis就会移除这个键。
EXPIRE 命令用于设置秒级精度的生存时间,它可以让键在指定的秒数之后自动被移除;
PEXPIRE 命令则用于设置毫秒级精度的生存时间,让键在指定的毫秒数之后自动被移除;

语法格式:
EXPIRE key seconds
PEXPIRE key milliseconds
如,

# 设置键user.101的生存时间为5秒
EXPIRE user.101 5

# 设置键user.102的生存时间为500毫秒
PEXPIRE user.102 500

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

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

二、创建键的同时设置生存时间

Redis从2.6.12版本开始为SET命令提供了 EX 选项和 PX 选项,分别用于在创建时对键设置秒级过期时间和毫秒级过期时间。如

# 创建字符串键name的同时将其生成时间设置为5秒
SET name 'peter' EX 5

使用带有 EX 选项或 PX 选项的SET命令除了可以减少命令的调用数量并提升程序的执行速度之外,更重要的是保证了操作的原子性,使得“为键设置值”和“为键设置生存时间”这两个操作可以一起执行。

三、对键设置过期时间

设置过期时间即设置键在未来的某个时间时被消除,设置过期时间这一操作可以通过 EXPIREAT 命令或者 PEXPIREAT 命令来完成。其中,EXPIREAT 命令接受一个键和一个秒级精度的UNIX时间戳为参数,当系统的当前UNIX时间超过命令指定的UNIX时间时,给定的键就会被移除,如

# 设置键name在UNIX时间1450005000秒后被消除
EXPIREAT name 1450005000

EXPIRE / PEXPIRE 命令会更新键的生存时间一样,EXPIREAT / PEXPIREAT 命令也会更新键的过期时间:如果用户在执行 EXPIREAT 命令或 PEXPIREAT 命令的时候,给定键已经带有过期时间,那么命令首先会移除键已有的过期时间,再为其设置新的过期时间。

四、获取键的剩余生存时间

在为键设置了生存时间或者过期时间之后,可以使用 TTL 命令或者 PTTL 命令查看键的剩余生存时间。其中,TTL 命令将以秒为单位返回键的剩余生存时间,而 PTTL 命令则会以毫秒为单位返回键的剩余生存时间。
语法格式:
TTL key
PTTL key

如果给定的键存在,但是并没有设置生存时间或者过期时间,那么TTL命令和PTTL命令将返回 -1;
如果给定的键并不存在,那么TTL命令和PTTL命令将返回 -2;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值