2016
01-08
01-08
memcache和memcached的区别 HOT
前两天,大家在群里讨论memcache缓存时,有群友提到了在memcache中如何存储数组,并如何直接通过数组索引取值的问题?当时,大家的回答基本一致是memcache是key-value形式的内存缓存系统。对于缓存key,只能是string类型,而无法存储array类型的key。虽然大家的理解基本保持一致,但是本着求证的态度,我还是查阅了php官方文档。官方示例代码如下:
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
?>
以上代码的输出如下:
array(2) {
["key1"]=>
string(6) "value1"
["key3"]=>
string(6) "value3"
}
array(2) {
["key1"]=>
float(2360)
["key3"]=>
float(2362)
}
Memcached::setMulti()类似于Memcached::set(),它是一次存储多个key/value元素,以便于对多个元素的操作。之前我理解为key可以是array数组,但实际上并不是。setMulti()方法相当于是多次调用set()方法存储数据。在这里谢谢@乌大湿的指点。群友的问题暂时无解,那代码中的memcached和我们平常认知的memcache有何不同?