当前位置: 首页 > 数据应用 > Redis

Redis中如何查看和设置key的过期时间

时间:2023-06-29 01:25:19 Redis

Redis中如何查看和设置key的过期时间

Redis是一个高性能的键值数据库,它可以存储各种类型的数据,如字符串、列表、集合、散列等。Redis支持给每个key设置一个过期时间,当过期时间到达时,key会自动被删除,从而节省内存空间和提高性能。

查看key的过期时间

要查看一个key的过期时间,我们可以使用TTL命令,它的语法如下:

这个命令会返回一个整数值,表示key的剩余生存时间(以秒为单位)。如果key不存在或者没有设置过期时间,返回-2;如果key已经过期,返回-1。

例如,我们可以先用SET命令给一个key设置一个值和一个过期时间:

这个命令会给name这个key设置一个值为\"Alice\",并且在60秒后过期。然后我们可以用TTL命令查看它的剩余生存时间:

这个结果表示name这个key还有55秒就会过期。如果我们再等一会儿再查看:

这个结果表示name这个key已经过期了。

设置key的过期时间

要给一个key设置一个过期时间,我们有两种方法:一种是在创建key的时候就指定过期时间,另一种是在创建key之后再修改过期时间。

在创建key时指定过期时间

在创建key时指定过期时间有两种方式:一种是使用SET命令的选项参数,另一种是使用SETEX命令。

#使用SET命令的选项参数

SET命令除了可以设置key的值之外,还可以接受一些选项参数来控制key的行为。其中有两个参数可以用来设置key的过期时间:

1.EX seconds:表示key在seconds秒后过期。

2.PX milliseconds:表示key在milliseconds毫秒后过期。

例如,我们可以用以下命令给一个key设置一个值和一个10秒的过期时间:

或者用以下命令给一个key设置一个值和一个10000毫秒(即10秒)的过期时间:

注意:如果同时使用了EX和PX参数,那么只有最后一个参数会生效。

#使用SETEX命令

SETEX命令是SET命令的扩展版本,它可以同时设置key的值和过期时间(以秒为单位)。它的语法如下:

例如,我们可以用以下命令给一个key设置一个值和一个10秒的过期时间:

在创建key之后修改过期时间

在创建key之后修改过期时间有两种方法:一种是使用EXPIRE命令,另一种是使用PEXPIRE命令。

#使用EXPIRE命令

EXPIRE命令可以给一个已经存在的key设置一个新的过期时间(以秒为单位)。它的语法如下:

这个命令会返回一个整数值,表示操作是否成功。如果key不存在或者已经过期,返回0;如果key存在并且设置了新的过期时间,返回1。

例如,我们可以先用SET命令给一个key设置一个值:

然后我们可以用EXPIRE命令给它设置一个10秒的过期时间:

这个结果表示操作成功。我们可以用TTL命令查看它的剩余生存时间:

这个结果表示name这个key还有8秒就会过期。

#使用PEXPIRE命令

PEXPIRE命令和EXPIRE命令类似,只是它可以给一个已经存在的key设置一个新的过期时间(以毫秒为单位)。它的语法如下:

这个命令会返回一个整数值,表示操作是否成功。如果key不存在或者已经过期,返回0;如果key存在并且设置了新的过期时间,返回1。

例如,我们可以先用SET命令给一个key设置一个值:

然后我们可以用PEXPIRE命令给它设置一个10000毫秒(即10秒)的过期时间:

这个结果表示操作成功。我们可以用TTL命令查看它的剩余生存时间:

这个结果表示name这个key还有9秒就会过期。

删除key的过期时间

如果我们想要取消一个key的过期时间,让它永久存在,我们可以使用PERSIST命令。它的语法如下:

这个命令会返回一个整数值,表示操作是否成功。如果key不存在或者没有设置过期时间,返回0。