发布网友
共1个回答
热心网友
通过expire
命令或者pexpire
命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(
time
to
live
,
ttl)
,在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键:
redis>
set
key
value
ok
redis>
exp
工re
key
5
(integer)
1
redis>
get
key
//
5
秒之内"value"
redis>
get
key
//
5
秒之后
(nil)
注意
setex
命令可以在设直一个字符串键的同时为键设直过期时间,因为这个命令是一个类型限定的命令(只能用于字符串键),但setex
命令设置过期时间的原理和expire命令设置过期时间的原理是完全一样的。
与explre
命令和pexpire
命令类似,客户端可以通过explreat
命令或pexplreat命令,以秒或者毫秒精度给数据库中的某个键设置过期时间(expire
time)。
过期时间是一个unix时间戳,当键的过期时间来临时,服务器就会自动从数据库中删除这个键:
redis>
set
key
value
ok
redis>
expireat
key
1377257300
(integer)
1
redis>
time
1)"1377257296"2)"296543"
redis>
get
key
//
1377257300
之前"value"
redis>
time
1)"1377257303"2)"230656
"
redis>
get
key
//
1377257300
之后
(nil)
ttl
命令和pttl
命令接受一个带有生存时间或者过期时间的键,返回这个键的剩余生存时间,也就是,返回距离这个键被服务器自动删除还有多长时间:
redis>
set
key
va1ue
ok
redis>
explre
key
1000
(integer)
1
redis>
ttl
key
(integer)
997
redis>
set
another_key
another_value
ok