探寻Redis中键的过期时间(查看redis过期时间)

Redis是一个基于内存的KV数据库,具有快速、简单的特点,被广泛应用于多种场景,特别是数据缓存领域。使用Redis,会遇到类似「多长时间后某些键将会过期」这样的需求,为此Redis给出了一种途径来控制key的有效期。让我们一起来看看Redis中键的过期时间是如何设置及获取的。

我们可以使用EXPIRE命令给指定键设置一个过期时间,如:

127.0.0.1:6379> SET mykey "hello"
OK
127.0.0.1:6379> EXPIRE mykey 10
(integer) 1

可以看到,上面的命令将键mykey的过期时间设置为了10秒,而返回的结果1表示这个设置成功。若为0,则表示键mykey不是一个字符串、列表或者哈希值,不能设置过期时间。如果要获取已经设置的键的过期时间,可以使用TTL命令,如:

127.0.0.1:6379> TTL mykey 
(integer) 8

可以看到,TTL返回了剩余的过期时间为8秒,而PERSIST命令可以移除设置了过期时间的键:

127.0.0.1:6379> PERSIST mykey 
(integer) 1
127.0.0.1:6379> TTL mykey
(integer) -1

从上面可以看出来,PERSIST成功执行之后,TTL命令将返回-1,表示所操作的键没有设置过期时间。另外,有个EXPIREAT命令可以指定键的过期时间点,这个命令的一个参数是一个UNIX时间戳,比如,下面就设置的是截止到2021年3月12日18点27分的过期时间:

127.0.0.1:6379> EXPIREAT mykey 1615609220
(integer) 1

总结一下,Redis为我们提供了EXPIRE和EXPIREAT这两个命令来设置、获取键的过期时间,以及用TTL和PERSIST命令来检测和清除键的过期时间,可以说Redis做到了「让数据具有一定的生命力」。


数据运维技术 » 探寻Redis中键的过期时间(查看redis过期时间)