缓存过期 memcached在处理过期的缓存项时,采用懒惰模式处理方法。 缓存项过期,不会立即删除,直到对该缓存项执行了get操作,才会删除过期缓存。 > set key 0 10 > test > stats //查看curr_items的值 > get key //超过过期时间 > stats //查看curr_items,发现执行get操作后,key被删除了。 缓存空间已满 memcached在插入新数据时,如果空间不足,采用的删除旧缓存项的策略。 采用删除最近最少使用(使用频率低)的缓存项(LRU算法)。 $mem = new Memcache(); $mem->connect('127.0.0.1', '11211'); $data = str_repeat('a', 500 * 1024); var_dump($mem->set('key_1', $data)); $data2 = str_repeat('b', 500 * 1024); var_dump($mem->set('key_2', $data2)); //分别获取不同次数的key $mem->get('key_1'); $mem->get('key_2'); $mem->get('key_1'); //添加key_3,因空间不足,memcached会删除最少使用的key $data3 = str_repeat('c', 500 * 1024); var_dump($mem->set('key_3', $data3)); $mem->get('key_3'); //发现key_2已经被删除,因为使用较少 $mem->get('key_2'); $mem->get('key_1');