Redis中LRU算法的实现(介绍了整体设计思路和LRU时钟概述、对象的空闲时间的计算、LRU执行的时机、执行过程)
整体思路:首先定义一个淘汰池,这个淘汰池是一个数组(大小为16),然后触发淘汰时会根据配置的淘汰策略,先从符合条件的key中随机采样选出5(可在配置文件中配置)个key,计算其空闲时间,如果Pool还没有满或者比Pool中的最小空闲时间Key大的话,就将空闲时间小的Key从Pool中移除,将Key加入到Pool中。每次采样之后更新这个淘汰池,让这个淘汰池里保留的总是那些随机采样出的key中空闲时间