一:Memcached过期机制
(1)当某个值过期后,并没有从内存删除,因此stats统计时,curr_item有气信息。
(2)如果之前有没有get取其值时,将不会自动删除。当某个新值去占用他的位置的时,就当成chunk来占用(3)当get取其值时,如果过期,返回空,并且清空,所以curr_item就减少了。
备注:当某个Memcached存储中的值过期了,只是让用户看不到这个缓存的数据而已,并没有在过期的瞬间立即从内存中删除,而是什么时候需要用到这个位置的时候在删除。这个称之为惰性失效机制[lazy
expiration]。好处在于节省了CPU时间和检测的成本。
二:Memcached删除机制
(1)举例说明:如以122byte大小的chunk大小举例,122的chunk都满了,此时又有新值(长度为120byte) 要加入,这时要挤掉谁呢?
答:Memcached此处用了LRU删除机制 [LRU:最近最少使用的]
原理:当某个单元被请求时,维护一个计数器通过计数器来判断最近谁最少被使用,就把谁踢出。[这就是老数据被T现象]