我试图告诉memcached池故障转移。但首先我只尝试使用1台服务器
我有以下代码
$m = new Memcached;
$m->setOption(Memcached::OPT_CONNECT_TIMEOUT, 1);
$m->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 1);
$m->addServer($somehost,$someport);
function callback($memc, $key, &$value) { echo "Callback for $key " . PHP_EOL; }
$key = 'mk1470838967';
$data = $m->get($key, 'callback');
if (!$data) {
echo "NOT found $key in cache, result code: " . $m->getResultCode() . PHP_EOL;
echo "Callback should have been called before this";
}
所以问题是当我的MC服务器运行时一切都很好。我得到了我的数据。
但是当我关闭我的MC服务器以测试故障转移时,永远不会调用回调并且结果代码不是预期的。
输出:
NOT found mk1470838967 in cache, result code: 3
Callback should have been called before this
任何想法我可能做错了什么?
修改
我现在明白回调仅适用于缓存未命中。但是结果代码怎么样呢。