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。