目录
一、前言
通过一些特定命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间,在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键。
二、设置过期时间
Redis有四个不同的命令可以用于设置键的生存时间或过期时间:
- EXPIRE
- PEXPIRE
- EXPIREAT
- PEXPIREAT
三、保存过期时间
redisDb结构的 expires字典保存了数据库中所有键的过期时间,我们称这个字典为过期字典
- 过期字典的键是一个指针,这个指针指向键空间中的某个键对象(也即是某个数据库键)
- 过期字典的值是一个long long类型的整数,这个整数保存了键所指向的数据库键的过期时间一个毫秒精度的UNIX时间戳。
Redis使用惰性删除和定期删除策略处理过期键。惰性删除在取出键时检查是否过期并删除,节省CPU时间但可能导致内存浪费。定期删除在固定间隔检查并删除过期键,平衡CPU和内存使用。Redis实际采用两策略结合,通过expireIfNeeded和activeExpireCycle函数实现。
订阅专栏 解锁全文
294

被折叠的 条评论
为什么被折叠?



