Redis学习9--键过期

键过期

设置生存时间

Redis提供两个命令来设置键的生存时间(TTL,time to live) 包含以下
EXPIRE key seconds 将键key的生存时间设定为秒数
PEXPIRE milliseconds 将键key的生存时间设置为毫秒数
如果过键不存在返回0,返回1表示设置成功
设置完成即开始,当键的生存时间被减少至低于0是,Redis将删除该键值对
EXPIRE示例:
127.0.0.1:6379> exists msg
0
127.0.0.1:6379> set msg "hello world"
OK
127.0.0.1:6379> expire msg 10
1
127.0.0.1:6379> exists msg
1
127.0.0.1:6379> exists msg
0
127.0.0.1:6379> exists msg
1
PEXPIRE示例:
127.0.0.1:6379> pexpire msg 10500
1
127.0.0.1:6379> exists msg
1
127.0.0.1:6379> exists msg
0
设置过期时间
EXPIREAT key timestamp                        将键key的过期时间设置为指定的秒级UNIX时间戳
PEXPIREAT key milliseconds-timestamp 将键key的过期时间设置为指定的毫秒级UNIX时间戳
如果给定的key不存在EXPIREAT和PEXPIREAT设置不成功返回0,如果存在返回1则成功
键过期时间小于当前时间时将会被删除。

生存时间和过期时间的取表
EXPIRE和PEXPIRE的作用是让键在N秒或N毫秒后被删除
EXPIREAT和PEXPIREAT的作用是指定UNIX时间到达之后删除键
生存时间的键就像是个倒计时器,会倒数5,4,3,2,1,0 然后删除
过期时间的键则是像定时器,他会在指定时间来临后被删除

返回键的剩余生存时间
TTL key            以秒为单位返回键的剩余生存时间
PTTL key         以毫秒为单位返回键的剩余生存时间
返回值
-2                        表示键不存在
-1                        表示键存在,但没有设置过期时间或者生存时间
>=0                     键的剩余生存时间
示例:
127.0.0.1:6379> set msg "hello"
OK
127.0.0.1:6379> expire msg 10086
1
127.0.0.1:6379> ttl msg
10082
127.0.0.1:6379> pttl msg
10053370
127.0.0.1:6379> set number 100086
OK
127.0.0.1:6379> EXPIREAT number 1800000000
1
127.0.0.1:6379> ttl number
376887882
127.0.0.1:6379> pttl number
376887875726

移除键的过期时间或者生命时间
PERSIST key 
移除为键设置的过期时间或者生存时间,使得他不会被redis到期后删除
127.0.0.1:6379> pttl number
376887875726
127.0.0.1:6379> PERSIST msg
1
127.0.0.1:6379> ttl msg
-1
127.0.0.1:6379> PERSIST number
1
127.0.0.1:6379> ttl number
-1

示例:自动更新缓存


SETEX命令、PSETEX命令
因为set key value EXPIRE key seconds这个经常出现,所以Redis在2.0版本后新增了SETEX命令来代替
SETEX key seconds value
在Redis2.6.0新增PSETEX key milliseconds value 代替 SET key value PEXPIRE key milliseconds

SET命令对生存时间的支持
Redis在2.6.12版本后,对SET命令进行了修改
SET key value [EX seconds][PX milliseconds]
127.0.0.1:6379> set msg 10086 ex 5
OK
127.0.0.1:6379> exists msg
0
127.0.0.1:6379> set msg 10086 px 10000
OK
127.0.0.1:6379> exists msg
0
示例:自动刷新的排行榜



复习:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值