1. 被动删除。
获取键时,检查是否过期(对CPU)友好;
2. 主动删除。
Server cron事件,防止一些key被读取的概率极低,不会被动删除。定时执行Server cron事件(每秒10次,可以通过hz设置),随机检查清理设置了过期时间的键。对内存友好
- 机测试100个设置了过期时间的key
- 删除所有发现的已过期的key
- 若删除的key超过25个则重复步骤1
3. 当前已用内存超过maxmemory时,触发主动清理策略。
- volatile-lru:只对设置了过期时间的key进行LRU(默认值)
- allkeys-lru : 删除lru算法的key
- volatile-random:随机删除即将过期key
- allkeys-random:随机删除
- volatile-ttl : 删除即将过期的
- noeviction : 永不过期,返回错误