缓存过期
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');

 

posted on 2017-01-17 20:04  怀素真  阅读(235)  评论(0编辑  收藏  举报