memcache 的限制内存用光了以后,新的项加入会把旧的未过期项删除吗? 还是怎样处理的?比如大家都是未过期的,即都是有效缓存时间内, 超过最大使用内存后,比如100m, 加入的项,是不是先进先出这样的 ?

解决方案 »

  1.   

    我记得是会set失败的...可以把memcached的内存设的小一些,然后做个试验试试看..
      

  2.   

    lru 自动清除最近比较少用的,然后将新的覆盖。
      

  3.   

    回1楼, 我觉得2楼说得更中肯一些.  一满set会失败, 好像条件不太成立.. 因为这是个很大的要改进的地方.. mm的开发者应该看到这些问题的.. 
      

  4.   

    memcache的内存是按页分配的, 分配一页之后再分成更多的小块, 这样做的后果时, 回收也是按页回收, 所以往往会把不一定是"旧"的东西也给回收了, 所以会存在命中率问题, 如果你服务器可用内存很小, 还是不要使用memcache了, 可以考虑使用文件式的hash缓存类
      

  5.   

    http://hi.baidu.com/joysoftfan/blog/item/e6deaae459d7ae3ab9382035.htmlgoogle了一下,然后自己也写了个脚本测试了下,的确如2L所说