我使用Memcache缓存项目yii2中的数据。
配置:
'cache' => [
'class' => 'yii\caching\MemCache',
'servers' => [
[
'host' => 'localhost',
'port' => 11211,
],
],
],
'cache' => [
'class' => 'yii\caching\MemCache',
'servers' => [
[
'host' => 'localhost',
'port' => 11211,
],
],
],
使用代码:return false
\Yii::$app->cache->set('abc', 'value of abc', 20); // 20 seconds
$data = \Yii::$app->cache->get('abc'); var_dump($data); // return false
但如果我设定:
\Yii::$app->cache->set('abc', 'value of abc', 20); // 20 seconds
$data = \Yii::$app->cache->get('abc'); var_dump($data); // return false
\Yii::$app->cache->set('abc', 'value of abc', -20); // -20 seconds $data = \Yii::$app->cache->get('abc'); var_dump($data); // return "value of abc"
那为什么呢?感谢。
答案 0 :(得分:0)
你可以增加秒数吗?
请尝试这个,让我知道结果:
\Yii::$app->cache->set('abc', 'value of abc', 10000);
$data = \Yii::$app->cache->get('abc'); var_dump($data);
答案 1 :(得分:0)
有点晚了,但万一其他人有同样的问题,这是我的想法......
可能取决于是否安装了MemCached或MemCache。如果config使用MemCache(就像在问题中一样)但安装了MemCached,它将使用get(),但set()在两个第一个参数(即duration)之后是不同的。