通过expire或pexpire命令,客户端可以以秒或毫秒的精度为数据库中的某个键设置生存时间。
与expire和pexpire命令类似,客户端可以通过expireat和pexpireat命令,以秒或毫秒精度给数据库中的某个键设置过期时间,可以理解为:让某个键在某个时间点过期。
虽然时间单位或形式不同,但实际上expire、pexpire、expireat这3个命令,都是应用pexpireat命令来实现的:无论客户端执行的是以上4个命令中的哪一个,经过转换之后,最终的执行效果都和执行pexpireat命令是一样的
persist命令:移除某个键的过期时间,使其永久不过期
ttl和pttl命令都是通过计算键的过期时间和当前系统时间(毫秒时间戳)之差来给出结果的,如果是ttl还需将毫秒转换为秒(当系统的时间修改后,也会影响ttl所返回的有效期)
返回结果:
TTL命令返回key的过期时间,一般来说有3中:
1. 当前key没有设置过期时间(永久有效),所以会返回-1.
2. 当前key有设置过期时间,而且key已经过期,所以会返回-2.
3. 当前key有设置过期时间,且key还没有过期,故会返回key的正常剩余时间.
对于过期键的删除策略,Redis服务器实际使用的是:惰性删除和定时删除2中策略。