设置过期时间
expire <KEY> <TTL> : 将键的生存时间设为 ttl 秒
pexpire <KEY> <TTL> :将键的生存时间设为 ttl 毫秒
expireat <KEY> <timestamp> :将键的过期时间设为 timestamp 所指定的秒数时间戳
pexpireat <KEY> <timestamp>: 将键的过期时间设为 timestamp 所指定的毫秒数时间戳.
移除过期时间
persist可以移除一个键的过期时间
redis > set say "hello"
redis > exipre say 60
redis > ttl say //查看key为say的过期时间
redis > persist say //移除key为say的过期时间
查看过期时间
ttl say // ttl以秒为单位返回过期时间
pttl say //pttl 以毫秒为单位返回过期时间
是否设置过期时间
ttl say // 1:如果没有设置过期时间,则返回-1
// 2:如果没有改key值, 则返回 -2
// 3:返回以秒为单位的过期时间
过期键的删除策略:
- 立即删除:在创建键的操作时间时,创建一个回调事件,过期时间达到时,立即执行删除操作。
优点:可以立即释放内存。
缺点:立即删除对cpu是不友好的,删除操作会占用cpu的时间,如果在cpu很忙时,会给cpu造成额外的压力。 - 惰性删除:某个键过期后不会立即删除,会在下次使用时判断键是否过期,此时才会被删除。
缺点:浪费内存 - 定时删除:每隔一段时间执行一次删除操作,并通过限制删除操作执行的时长和频率,来减少删除操作对cpu的影响。另一方面定时删除也有效的减少了因惰性删除带来的内存浪费。
redis使用的过期键值删除策略是:惰性删除加上定期删除,两者配合使用。
网友评论