- 一、设置键的生存时间
- 二、创建键的同时设置生存时间
- 三、对键设置过期时间
- 四、获取键的剩余生存时间
Redis提供了为键设置过期时间的功能,可以让键在指定的时间之后自动被移除,从而避免了需要在指定的时间内手动删除操作的麻烦。 一、设置键的生存时间
可以通过EXPIRE命令或者PEXPIRE命令为键设置一个生存时间,当一个键的生存时间消耗殆尽时,Redis就会移除这个键。
EXPIRE命令用于设置秒级精度的生存时间,它可以让键在指定的秒数之后自动被移除;
而PEXPIRE命令则用于设置毫秒级精度的生存时间,它可以让键在指定的毫秒数之后自动被移除;
语法格式:
EXPIRE key seconds
PEXPIRE key milliseconds
如,
# 设置键user.101的生存时间为5秒 EXPIRE user.101 5 # 设置键user.102的生存时间为500毫秒 EXPIRE user.102 500
EXPIRE命令和PEXPIRE命令在生存时间设置成功时返回1;如果用户给定的键并不存在,那么命令返回0表示设置失败。
当对一个已设置了生存时间的键执行EXPIRE命令或PEXPIRE命令时,键原有的生存时间将会被消除,并设置新的生存时间。
二、创建键的同时设置生存时间Redis从2.6.12版本开始为SET命令提供了EX选项和PX选项,分别用于对键设置秒级过期时间和毫秒级过期时间。如
# 创建字符串键name的同时将其生成时间设置为5秒 SET name 'peter' EX 5
使用带有EX选项或PX选项的SET命令除了可以减少命令的调用数量并提升程序的执行速度之外,更重要的是保证了操作的原子性,使得“为键设置值”和“为键设置生存时间”这两个操作可以一起执行。
三、对键设置过期时间设置过期时间即设置键在未来的某个时间时被消除,设置过期时间这一操作可以通过EXPIREAT命令或者PEXPIREAT命令来完成。其中,EXPIREAT命令接受一个键和一个秒级精度的UNIX时间戳为参数,当系统的当前UNIX时间超过命令指定的UNIX时间时,给定的键就会被移除,如
# 设置键name在UNIX时间1450005000秒后被消除 EXPIREAT name 1450005000
与EXPIRE/PEXPIRE命令会更新键的生存时间一样,EXPIREAT/PEXPIREAT命令也会更新键的过期时间:如果用户在执行EXPIREAT命令或PEXPIREAT命令的时候,给定键已经带有过期时间,那么命令首先会移除键已有的过期时间,然后再为其设置新的过期时间。
四、获取键的剩余生存时间在为键设置了生存时间或者过期时间之后,可以使用TTL命令或者PTTL命令查看键的剩余生存时间。其中,TTL命令将以秒为单位返回键的剩余生存时间,而PTTL命令则会以毫秒为单位返回键的剩余生存时间。
语法格式:
TTL key
PTTL key
如果给定的键存在,但是并没有设置生存时间或者过期时间,那么TTL命令和PTTL命令将返回-1;
如果给定的键并不存在,那么TTL命令和PTTL命令将返回-2;



