Redis 过期时间

expire命令

1、expire key seconds,其中seconds表示键过期的时间,单位是秒, 返回值1表示成功, 0表示设置失败或者键不存在

127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> expire foo 20

ttl命令,一个键还有多少时间会被删除,返回的是键的剩余时间, 当键不存在就会返回-2, 当键没有设置过期时间(即永久存在)的情况下,返回的是-1

127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> expire foo 20
(integer) 1
127.0.0.1:6379> ttl foo
(integer) 18
127.0.0.1:6379> ttl foo
(integer) 13
127.0.0.1:6379> ttl foo
(integer) -2
127.0.0.1:6379> get foo
(nil)

expire命令seconds参数必须是整数,所以最小单位是1秒,如果想要精确的控制键的过期时间应该使用pexpire命令,对应的也可以用pttl命令返回以毫秒为单位的返回键的剩余过期时间。
使用watch命令监测一个拥有过期时间的键,键到期自动删除,不会被watch命令认为该键被改变

persist取消键的过期时间设置(即将键恢复到永久的),除此之外set或getset命令键赋值也会清除键的过期时间设置

127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> expire foo 20
(integer) 1
127.0.0.1:6379> persist foo
(integer) 1
127.0.0.1:6379> ttl foo
(integer) -1

expireat和pexpireat命令,与expire和pexpire的区别是expireat使用unix时间作为第二个参数表示过期时刻。pexpireat和expireat的区别是前者的时间单位是毫秒

原文地址:https://www.cnblogs.com/bruce1992/p/13887722.html