高世军的博客

人生的意志和劳动将创造奇迹般的奇迹!

memcached的LRU删除机制前篇


前言:当memcached中有100bytes的数据要存,但是122大小的仓库中chunk满了。并不会寻找更大的仓库去存储,而是把122仓库的旧数据T掉,这就是数据过期与删除机制。

1.  当某个值过期之后,并没有从内存中删除,在使用stats命令时,发现curr_items 依然存在。只是当你去get,取数据的时候为空,才会删除,然后在查看stats,显示正确的curr_items。也就是没有get数据,将不会删除。




10s之后查看:




然后get一下:




查看:




好处:节省了CPU时间和检测的成本。

2. 操作系统常用的机制

LRU 最近最少用

FIFO 先进先出

        FIFO置换算法性能之所以较差,是因为它所依据的条件是各个页面调入内存的时间,而页面调入的先后并不能反映页面的使用情况。最近最久未使用(LRU)置换算法,是根据页面调入内存后的使用情况进行决策的。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最久未使用的页面予以淘汰。

 

阅读更多
个人分类: memcached
上一篇使用memcached加速web应用实例
下一篇深入理解memcached,高并发、懒惰与LRU(一)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭