一.前言
本文简单地记录一下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。