由于服务器只有2G内存,现在配了memcache为512M,但是一天不到用了80%,这样麻烦就来了,过期的缓存会自动清除吗?如果不会,新生成的缓存会不会覆盖过期的?或者有没有现成的代码清理过期缓存的?

解决方案 »

  1.   

    你分配给他多少 他就用你多少.预分配,懒删除机制,不会自动,每次get的时候才检查是否过期,会覆盖.
      

  2.   

    memcached是不可靠的缓存服务,不保证数据的存活。如果你需要持久化保存,建议选用nosql。
    如果你只是需要一个缓存,memcached运行一段时间后占用会趋于稳定,留出一部分空间用于交换和突然的大set。这个预留空间可以在配置里指定。另,你配给memcached多少,他就几乎不会使用更多的内存(极端情况下有可能,但非常少见)