APP开发公司浅析如何删除过期的Key,超过超时时间后,该Key与对应的数据会被Redis删除。通过删除过期的Key,可以在一定程度上优化内存的使用。设置了Key的过期时间后,Redis采用下面的两种策略删除过期的Key。
1.惰性删除
Redis操作Key时,如果发现Key已经过期了,则删除过期的Key。这种策略的好处是不占用过多的CPU资源,只有Redis操作Key时才检查,保证不会在其他Key上消耗CPU资源。
坏处是只有操作Key时才检查该Key是否过期,这样过期的Key的数据依然长期存储在内存中,占据内存的空间。
使用惰性删除策略时,如果内存中存在大量的过期的Key,而这些Key没有被访问过会占用大量的内存空间,操作系统无法释放内存。这种删除策略对于数据都存储于内存的Redis来说非常糟糕。
如果App后台把Redis作为一个存储系统,App业务当中肯定会存储一些冷数据,例如一些不活跃的用户数据,这些用户注册后不再打开App,就变成冷数据。这些冷数据的特点是当写入后很长时间内都不会被访问。如果只依赖于Redis的惰性删除,这部分冷数据一直占用着内存,没法清理内存空间。
2.定期删除
Redis为了补救惰性删除策略的不足,释放更多的内存,也对过期的Key同时采用了定期删除的策略。
定期删除策略是每隔一段时间,Redis检查所有设置了过期时间的Key,如果发现当前时间已经超过了该Key的过期时间,就把Key和对应的数据删除。为了保证Redis的高性能,Redis执行定期删除策略的频率和时长都有限制。深圳APP开发公司本文关于“APP开发公司浅析如何删除过期的Key”的知识就介绍分享到这里,谢谢关注,博纳网络编辑整理。