我正在尝试通过键获取缓存值,在这种情况下,该值为“ 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。他们互相替换。
要解决此问题,您需要在文件缓存文件中使用方法:
'cache' => [
'class' => 'yii\caching\MemCache',
'servers' => new \yii\helpers\ReplaceArrayValue([
[
'host' => 'memcache',
'port' => 11211,
],
]),
'useMemcached' => true,
],