我们有两台带有 Memcached 的服务器。
第一个是所谓的memcachedSetter
,第二个是memcachedGetter
。
服务器通过 php函数memcachedSetter
创建并扩展搜索参数作为值(我们得到搜索航班参数,绕过是在提供商的 SOAP 服务器上)uniq keys
createUID
public function createUID() {
return md5(uniqid(rand(),1));
}
当用户选择返回的航班变体之一进行预订时,会出现第二个航点。
memcachedGetter
想要加入具有请求条件的选定航班变体。这是设置和获取值memcachedGetterServer代码示例的示例。
memcachedSetter设置动作:
public function memcachedSetterSetAction() {
$cacheConfig = new \Zend\Config\Config...;
$content = new \stdClass();
$content->content = 'Some search criteria';
$cache = \Zend\Cache\StorageFactory::factory(...);
$cache->setItem('taskA9E3..89', $content);
$cache->setItem('requestFC20..60', $content);
$cache->setItem('taskD987..76', $content);
$cache->setItem('request72D4..4A', $content);
die;
}
memcachedSetter获取操作:
public function memcachedSetterGetAction() {
echo "<br> 1. ";
$requestData = $cache->getItem('taskA9E3..89');
var_dump($requestData );
echo "<br> 2. ";
$requestData = $cache->getItem('requestFC20..60');
var_dump($requestData );
echo "<br> 3. ";
$requestData = $cache->getItem('taskD987..76');
var_dump($requestData );
echo "<br> 4. ";
$requestData = $cache->getItem('request72D4..4A');
var_dump($requestData );
}
这样我们设置和获取每个键/值。然后当我们尝试在第二台服务器上通过键获取值时,魔法出现了:
memcachedGetter获取操作:
public function memcachedSetterGetAction() {
echo "<br> 1. ";
$requestData = $cache->getItem('taskA9E3..89');
var_dump($requestData );
echo "<br> 2. ";
$requestData = $cache->getItem('requestFC20..60');
var_dump($requestData );
echo "<br> 3. ";
$requestData = $cache->getItem('taskD987..76');
var_dump($requestData );
echo "<br> 4. ";
$requestData = $cache->getItem('request72D4..4A');
var_dump($requestData );
}
与 memcached Setter一样,memcached Getter上的相同代码将只返回即时完整集的一部分值:
1. object(stdClass)#331 (1) { ["content"]=> string(17) "Some sea..." }
2. object(stdClass)#332 (1) { ["content"]=> string(17) "Some sea..." }
3. object(stdClass)#336 (1) { ["content"]=> string(17) "Some sea..." }
4. object(stdClass)#339 (1) { ["content"]=> string(17) "Some sea..." }
对比
1. object(stdClass)#335 (1) { ["content"]=> string(17) "Some sea..." }
2. object(stdClass)#331 (1) { ["content"]=> string(17) "Some sea..." }
3. NULL
4. NULL