1Expire key (以秒为单位)

Expireat key timestamp (以时间戳为单位)

Pexpire key(以毫秒为单位)

作用:给key设置保质期(以expire为例,另外两个一致)

openresty redis 过期 redis 过期key_Redis数据库Key操作大全

PTTL key (以毫秒为单位返回key的剩余的过期时间)

TTL key (以毫秒为单位返回key的剩余生存时间)

(当key不存在时,返回-2,当key存在但没有设置剩余生存时间时,返回-1,否则以秒为单位)

openresty redis 过期 redis 过期key_序列化_02


不存在的key

openresty redis 过期 redis 过期key_Redis_03


未设置有效期时间

openresty redis 过期 redis 过期key_Redis_04


Persist key((persist移除key的过期时间,key将持久保持)

openresty redis 过期 redis 过期key_Redis数据库Key操作大全_05

看到这里相信大家,肯定会意识到这样会非常浪费Redis的内存,大大降低了其可用性,所以为了解决这一问题,Redis有以下三种删除过期Key的策略。
下面的定时删除和定期删除都属于主动过期,
惰性删除则属于被动过期,扫描将触发key的被动过期。

  1. 定时删除:在设置key的过期时间时会创建一个定时器,当定时器时间到了时,会立马删除过期的key
  2. 惰性删除:这个就比较懒惰,和HIbernate或Mybatis的懒加载机制类似,key过期的时候,不会立马删除,等到调用该过期key的时候才会将该key删除(处理过程:get>判断是否过期>执行删除>返回空nil)
  3. 定期删除:和定时删除有点像,不同的是定期删除是长期循环的,而定时是一次性的,每隔固定的时间段就会检查是否有过期的key,若存在,则删除

另外,以上的三种都是需要自己设置的,

2dump key

作用:序列化给定的key,返回被序列化之后的值

openresty redis 过期 redis 过期key_Redis数据库Key操作大全_06


3Exists key

作用:顾名思义,用来检查该key是否存在,1存在0不存在

openresty redis 过期 redis 过期key_时间段_07