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同样会被挤出来。这就是老数据被踢现象。

优质内容筛选与推荐>>
1、【hdu - 2568】ACM程序设计期末考试081230
2、在 2016 年做 PHP 开发是一种什么样的体验?
3、关于工作
4、1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
5、iOS.UI_NSUserDefaults的使用


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号