一.前言 

  本文简单地记录一下Redis中设置key的生存时间或过期时间的方式。

二.设置key的生存时间

  通过EXPIRE命令和PEXPIRE命令,可以给key设置生存时间(Time To Live,TTL),EXPIRE设置的时间单位为秒,PEXPIRE设置的时间单位为毫秒,在经过指定的生存时间后,Redis服务器会自动删除生存时间为0的key。

//命令

//给指定key设置生存时间(单位秒)
EXPIRE key seconds

//给指定key设置生存时间(单位毫秒)
PEXPIRE key milliseconds

三.设置key的过期时间

  通过EXPIREAR命令和PEXPIREAT命令,可以给key设置过期时间(expire time),这个过期时间是一个UNIX时间戳,EXPIREAT设置的时间戳单位是秒,PEXPIREAT设置的时间戳单位是毫秒。当key的过期时间来临时,Redis服务器会自动删除这个过期的key。

//命令

//给指定key设置生存时间(单位秒)
EXPIRE key seconds

//给指定key设置生存时间(单位毫秒)
PEXPIRE key milliseconds

//查看当前服务器的时间 返回两个值,一是当前时间(UNIX时间戳格式),二是这一秒已经逝去的微秒数
TIME

四.获取key的剩余生存时间

  TTL命令和PTTL命令接受一个带有生存时间或者过期时间的key,返回这个key的剩余生存时间。TTL获取的时间单位是秒,PTTL获取的时间单位是毫秒。如果命令接受的key是没有设置生存时间或过期时间,那么返回-1。 

//命令

//获取key剩余的生存时间(单位秒)
TTL key

//获取key剩余的生存时间(单位毫秒)
PTTL key

五.移除key的过期时间(生存时间)

  设置生存时间的EXPIRE命令和PEXPIRE命令在客户端中最终也是转换为PEXPIREAT命令来实现,也就是都是给key设置过期时间。移除key的过期时间和生存时间都是同样的使用PERSIST命令来实现。

//命令

//删除key的过期时间(生存时间)
PERSIST key

六.总结

  1.可以给key设置一个时间,等过了这个时间就自动把key删除。使用命令:EXPIRE、PEXPIRE、EXPIREAT、PEXPIREAT。

  2.可以查看key的剩余生存时间。使用命令:TTL、PTTL。

  3.可以移除key的过期时间。使用命令:PERSIST。