php - Yii2 使用 memcache 设置和获取缓存值
问题描述
我正在尝试按键获取缓存值,在这种情况下,该值为“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:
解决方案
我找到了解决方案。
问题是由于某种原因我有两个 Memcache 服务器。一个主机是localhost,另一个主机是memcache。他们互相替换。
要解决此问题,您需要在缓存帮助器方法 ReplaceArrayValue 中的文件 common/config/main-local.php 中指定
'cache' => [
'class' => 'yii\caching\MemCache',
'servers' => new \yii\helpers\ReplaceArrayValue([
[
'host' => 'memcache',
'port' => 11211,
],
]),
'useMemcached' => true,
],