为什么memcache Yii2没有使用duration参数设置值

时间:2016-05-18 09:49:29

标签: yii2 memcached

我使用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"

那为什么呢?感谢。

2 个答案:

答案 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)之后是不同的。