Redis采用惰性+定期的key淘汰策略
1. Redis配置项hz定义了serverCron任务的执行周期,默认为10,即CPU空闲时每秒执行10次;
2. 每次过期key清理的时间不超过CPU时间的25%,即若hz=1,则一次清理时间最大为250ms,若hz=10,则一次清理时间最大为25ms;
3. 清理时依次遍历所有的db;
4. 从db中随机取20个key,判断是否过期,若过期,则逐出;
5. 若有5个以上key过期,则重复步骤4,否则遍历下一个db;
6. 在清理过程中,若达到了25%CPU时间,退出清理过程;