Próbuję uzyskać wartość pamięci podręcznej według klucza, w tym przypadku wartość to „count”. Ale czasami dostaję wartość, a czasami nie. Długość klucza jest taka sama. Gdzie jest problem?

   $cache = Yii::$app->cache;

    $q=  Yii::$app->getSecurity()->generateRandomString(24) . time() ;
    $key = 'captcha_value_' . $q;

    $cache->set($key, 'count');

    echo "<br/>$key: ".$cache->get($key)."";

To właśnie jest wyjście

     captcha_value_DgytIGlX-tagsEFzoDjcK5ao1574253702:count 
     captcha_value_6qNykCcw91KCSD2lJ0Trl_cY1574254788:
1
Адам Лэнди 20 listopad 2019, 15:58
Czy próbowałeś użyć pamięci podręcznej plików lub innego mechanizmu przechowywania pamięci podręcznej?
 – 
Michael Krutikov
20 listopad 2019, 18:26

1 odpowiedź

Znalazłem rozwiązanie.

Problem polegał na tym, że z jakiegoś powodu miałem dwa serwery Memcache. Jeden z hostem to localhost, a drugi z hostem to memcache. I wymienili się nawzajem.

Aby rozwiązać ten problem, musisz określić w pliku common / config / main-local.php w metodzie pomocniczej pamięci podręcznej ReplaceArrayValue

'cache' =>  [
        'class' => 'yii\caching\MemCache',
        'servers' => new \yii\helpers\ReplaceArrayValue([
            [
                'host' => 'memcache',
                'port' => 11211,
            ],
        ]),
        'useMemcached' => true,
    ],
0
Адам Лэнди 21 listopad 2019, 12:50