Memcached的删除机制和过期机制

做实验



为什么呢?

Memcached的过期删除机制

1.当某个值过期后,并没有内存删除,因此stats统计时curr_item有其信息。

2.当取值时,判断是否过期,如果过期,返回空,并且清空,curr_item就减少了。

3.如果之前没有get过,将不会自动删除,当某个新值去占用他的位置时,当成空chunk来占用。

这个过期只是不让用户看不到这个数据而已,并没有在过期的瞬间立即从内存删除,这个称为lazy expiration 惰性失效机制。

 

好处:减少了CPU时间和检测的成本。

 

如果以122byteschunk大小举例,122chunk都满了,又有新的值(长度为120)要加入,要挤掉谁?

Memcached此处用的LRU删除机制(操作系统的内存管理,常用FIFO.LRU删除)

LRUleast Recenly Used 最近最少使用

FIFOfirst in first out  先进先出


原理:当某个单元被请求时,维护一个计数器,通过计数器来判断最近最少被使用。就把谁踢出。

注:即使某个key是设置的永久有效期,也一样会被踢出来!这就是--老数据被踢现象。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值