memcached 高级机制(二)
memcached删除机制
a)
(1)有内存机制里说明了,这里会运用到LRU删除机制。我们知道,当我们在add或set一个值时,我们会设置这个值得期限。当某个值过期后,这个值并没有从内存中删除,我们用stats统计时,curr_item会显示其信息;
(2)当我们用(get)取某个值时,这里所用到的机制是首先判断这个值是否过期,如果已经过期了就返回NULL,并且同时清空这个内存。curr_item就会减少。
(3)如果之前没有使用过get,将不会自动删除这个内存的值。当某个新值去占用它的位置,将其当成空的chunk来占用即可;
<这里的过期,只是让用户看不到这个数据而已,并没有在过期后立即从内存中删除,这里的这个机制称为lazy expiration (惰性失效),这个机制节省了cpu时间和检测的成本>
b)
举个栗子:此时内存中的150Byte的chunk都满了。又有新值140Byte加入,只能根据LRU算法来换掉其中的一些值。
memcached 此处用的LRU删除机制,永久有效的value同样会被挤出来。这就是老数据被踢现象。
优质内容筛选与推荐>>