在Redis中设置了过期时间的Key,需要注意哪些问题?
在为key设置过期时间需要注意的事项
1、 DEL/SET/GETSET等命令会清除过期时间
//设置mykey的过期时间为300s
127.0.0.1:6379> set mykey hello ex 300
OK
//查看过期时间
127.0.0.1:6379> ttl mykey
(integer) 294
//使用set命令覆盖mykey的内容
127.0.0.1:6379> set mykey olleh
OK
//过期时间被清除
127.0.0.1:6379> ttl mykey
(integer) -12、INCR/LPUSH/HSET等命令则不会清除过期时间
3、PERSIST命令会清除过期时间
4、使用RENAME命令,老key的过期时间将会转到新key上
5、使用EXPIRE/PEXPIRE设置的过期时间为负数或者使用EXPIREAT/PEXPIREAT设置过期时间戳为过去的时间会导致key被删除
6、EXPIRE命令可以更新过期时间
Redis的过期策略
懒惰删除
定期删除
参考资料
Last updated