本文已收录于专栏
上千人点赞收藏,全套Redis学习资料,大厂必备技能!
目录
1、简介
Redis的数据结构均可以通过EXPIRE key seconds 的方式设置key的过期时间(TTL)。我们也习惯的认为Redis的key过期时间到了,就会自动删除,显然这种想法并不正确。Redis的设计考虑到性能/内存等综合因素,设计了一套过期策略。
2、过期策略
Redis key过期删除有两种方式
- 主动删除
- 被动删除
2.1 主动删除
当key被访问的时候,先校验key是否过期,如果过期了则主动删除。
2.2 被动删除
Redis服务器定时随机的测试key的过期时间,如果过期了则被动删除。被动删除的存在必不可少,因为存在一些过期且永久不在访问的key,如果都依赖主动删除,那么它们将会永久占用内存。
Redis为了保证提供高性能服务,被动删除过期的key,采用了贪心策略/概率算法,默认每隔10秒扫描一次,具体策略如下:
- 从过期字典&