Redis 引用了 LRU(Least Recently Used)和引用计数器算法进行内存回收,Redis 会将那些过期数据和很少用到的数据清除掉。
每个 slab 会维护一个队列,刚插入的数据在队头,经常 get 的数据也会移动到队头,这样较老或者访问较少的数据相对都留在队尾。该算法从队尾开始淘汰。当 slab 分配不到足够的内存时,首先会检查队尾是否有过期数据。如果有的话会直接将其覆盖为新的对象,如果没有,会开始淘汰队尾的对象。
Redis 内存回收算法详细介绍:
Redis 引用了 LRU(Least Recently Used)和引用计数器算法进行内存回收,Redis 会将那些过期数据和很少用到的数据清除掉。
每个 slab 会维护一个队列,刚插入的数据在队头,经常 get 的数据也会移动到队头,这样较老或者访问较少的数据相对都留在队尾。该算法从队尾开始淘汰。当 slab 分配不到足够的内存时,首先会检查队尾是否有过期数据。如果有的话会直接将其覆盖为新的对象,如果没有,会开始淘汰队尾的对象。
Redis 内存回收算法详细介绍: