Не удается получить некоторые значения Memcached по ключу

У нас есть два сервера с Memcached на обоих.

Первый так называемый memcachedSetter и второй memcachedGetter,

сервер memcachedSetter Создайте uniq keys через php createUID функция и расширенный поиск параметров в качестве значения (мы получаем параметры поиска рейсов и обход на SOAP-сервере провайдера)

public function createUID() {
    return md5(uniqid(rand(),1));
}

Вторая точка маршрута появляется, когда пользователь выбирает один из вариантов возвращаемого рейса, чтобы забронировать его.

memcachedGetter хотите присоединиться к выбранному варианту полета с запросом реквизитов. Это пример примера кода Set и Get value memcachedGetterServer.

memcachedSetterSet Action:

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;
}

memcachedSetterGet Action:

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 );
}

Таким образом, мы устанавливаем и получаем оба ключа / значения. И тогда волшебство появляется, когда мы пытаемся получить значение по ключу на втором сервере:

memcachedGetterGet Action:

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 вернет только часть значений мгновенного полного набора, как это сделал memcachedSetter:

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

0 ответов

Другие вопросы по тегам