0

我正在尝试缓存一些东西。在我的 core.php 配置文件中,我有这个:

//short
Cache::config('short', array(
    'engine' => 'File',
    'duration' => '+1 hours',
    'path' => CACHE,
    'prefix' => 'cake_short_'
));

// long
Cache::config('long', array(
    'engine' => 'File',
    'duration' => '+1 week',
    'probability' => 100,
    'path' => CACHE . 'long' . DS,
));

在我的控制器中,我有这个:

$xmlpublist = Cache::read('xmlpublist');

var_dump($xmlpublist);

//if cache is still set, return cache
if($xmlpublist !== false) {
    die('cache A');
    return $xmlpublist;
}

Cache::write('xmlpublist', "test", 'short');
die('cache C');
return $xml;

我可以看到文件已生成 - /path/to/cache/cake_short_xmlpublist

但当我Cache::read('xmlpublist'),我总是得到bool(false)。我确保我对缓存目录具有读写访问权限。

期望: 从缓存中获取值。

结果: 我得到 bool(false)

我哪里错了?

任何回复表示赞赏;)

谢谢,W

4

1 回答 1

5

调用时Cache::read(),您需要包含要读取的缓存配置,因此在您的情况下'short'. 如果没有该附加参数,您将从“默认”配置中读取,该配置可能没有您要查找的密钥。

于 2012-08-27T01:54:11.833 回答