【问题标题】:Yii2 set and get cache value using memcacheYii2 使用 memcache 设置和获取缓存值
【发布时间】:2020-03-16 04:54:34
【问题描述】:

我正在尝试按键获取缓存值,在这种情况下,该值为“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】:

我找到了解决方案。

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

要解决这个问题,你需要在文件 common/config/main-local.php 中的缓存帮助方法 ReplaceArrayValue 中指定

'cache' =>  [
        'class' => 'yii\caching\MemCache',
        'servers' => new \yii\helpers\ReplaceArrayValue([
            [
                'host' => 'memcache',
                'port' => 11211,
            ],
        ]),
        'useMemcached' => true,
    ],

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多