redis中的key的两种过期机制 |
发布: 2013-06-23 12:27 |
可以说redis是一个纯内存的缓存系统,其能存储的数据量不会超过节点的最大内存容量。 所以key的过期清理机制非常重要。 一种比较常用的机制是,在读取key的时候,检测是否过期。 这是当前所有的内存K/V都在使得的办法,这种办法的CPU代价很低,顺便就能实现。 不过这种机制有一个问题,对于那些比较少访问的数据, 很有可能一直没有机会处理失效,而长时间浪费本应该回收的内存。 redis实现了另外一种过期机制,定时分批扫描有过期设置的key。 比如每秒扫描100个这种key,如果有已经过期的,则删除。 下一秒扫描下个100个key,循环执行。 这种机制保证了过期的key一定能够从内存中删除,节省内存空间。 这机制由于需要定时扫描,有一定的CPU消耗。不过在每次扫描时, 并非扫描全部数据,所以算是对CPU消耗与内存消耗两者的比较好的折衷方案。 |
原文: http://qtchina.tk/?q=node/732 |
Powered by zexport
|