[Yii2使用memcache设置并获取缓存值

问题描述 投票:1回答:1

我正在尝试通过键获取缓存值,在这种情况下,该值为“ count”。但是有时候我得到价值,有时却没有。密钥的长度是相同的。问题在哪里?

   $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)."";

这就是输出

     captcha_value_DgytIGlX-tagsEFzoDjcK5ao1574253702:count 
     captcha_value_6qNykCcw91KCSD2lJ0Trl_cY1574254788:
php caching yii2 memcached
1个回答
0
投票

我找到了解决方案。

问题是由于某种原因,我有两个Memcache服务器。一个带有主机的主机是localhost,另一个带有主机的主机是memcache。他们互相替换。

要解决此问题,您需要在文件缓存文件中使用方法:

'cache' =>  [
        'class' => 'yii\caching\MemCache',
        'servers' => new \yii\helpers\ReplaceArrayValue([
            [
                'host' => 'memcache',
                'port' => 11211,
            ],
        ]),
        'useMemcached' => true,
    ],
© www.soinside.com 2019 - 2024. All rights reserved.