我正在从memcache迁移到memcached,我注意到的一个差异是压缩标志似乎是为所有 set()
调用设置的,而不是像memcache
那样以个人为基础。
这是每个连接设置,还是我可以打开或关闭它?如果是后者,那么为每个set()
调用设置压缩标志的最佳方法是什么?
目前我正在考虑这样做:
<?php
if ($compress) $mc->setOption(Memcached::OPT_COMPRESSION,true);
$return = $mc->set($key,$object,$expiration);
if ($compress) $mc->setOption(Memcached::OPT_COMPRESSION,false);
这是正确的方法吗?
我也像这样设置$mc
,如果它有任何不同:
<?php
$mc = new Memcached("cl");
$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);
$mc->setOption(Memcached::OPT_BINARY_PROTOCOL,true);
if (count($mc->getServerList()) === 0) {
$mc->addServers(array (
array ($GLOBALS["mc"]["host"],$GLOBALS["mc"]["port"]),
));
}
谢谢!
看看这两个方法的签名,并阅读Memcached的源代码,我认为不可能为每个set
设置它。
php_memcached.c
(顺便说一下,这个客户的名字真蠢。Memcached过去是指服务器守护进程,现在是指服务器和客户端,你不能再谷歌了