缓存组件中的默认生命周期
Default lifetime in Cache Component
我需要从缓存适配器配置默认生命周期,但发生了一些奇怪的事情,以下不起作用!? :/
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
// in seconds; applied to cache items that don't define their own lifetime
// 0 means to store the cache items indefinitely (i.e. until the files are deleted)
$cache = new FilesystemAdapter('my_namespace', 5); // <-- default lifetime 5 seconds
$latestNews = $cache->getItem('latest_news');
if (!$latestNews->isHit()) {
$news = ['title' => '...', 'createdAt' => (new \DateTime())->format('Y-m-d H:i:s')];
$cache->save($latestNews->set($news));
} else {
$news = $latestNews->get();
}
Reference http://symfony.com/doc/current/components/cache/cache_pools.html#filesystem-cache-adapter
第一次缓存文件内容显示:
2147483647 <-- 2038-01-18 22:14:07 :/ ?
latest_news
a:2:{s:5:"title";s:3:"...";s:9:"createdAt";s:19:"2016-10-07 09:16:50";}
当然,该项目不会在 5 秒后过期:/(我已手动清除缓存目录)。
另一方面,如果我们使用 $latestNews->expiresAfter(5);
一切正常:
1475849350 <-- 2016-10-07 10:09:10 \o/ OK
latest_news
a:2:{s:5:"title";s:3:"...";s:9:"createdAt";s:19:"2016-10-07 10:09:05";}
Reference http://symfony.com/doc/current/components/cache/cache_items.html#cache-item-expiration
项目正确过期后 5 秒。
我用 Symfony\Component\Cache\Adapter\ApcuAdapter
测试过,也出现了同样的问题。
缓存适配器中的默认生命周期(构造函数参数)会发生什么?我在这里遗漏了一些东西:/?
是一个老问题[Cache] Fix default lifetime being ignored,影响 3.1
之前的框架版本
升级 Symfony 框架应该可以解决这个问题。
我需要从缓存适配器配置默认生命周期,但发生了一些奇怪的事情,以下不起作用!? :/
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
// in seconds; applied to cache items that don't define their own lifetime
// 0 means to store the cache items indefinitely (i.e. until the files are deleted)
$cache = new FilesystemAdapter('my_namespace', 5); // <-- default lifetime 5 seconds
$latestNews = $cache->getItem('latest_news');
if (!$latestNews->isHit()) {
$news = ['title' => '...', 'createdAt' => (new \DateTime())->format('Y-m-d H:i:s')];
$cache->save($latestNews->set($news));
} else {
$news = $latestNews->get();
}
Reference http://symfony.com/doc/current/components/cache/cache_pools.html#filesystem-cache-adapter
第一次缓存文件内容显示:
2147483647 <-- 2038-01-18 22:14:07 :/ ?
latest_news
a:2:{s:5:"title";s:3:"...";s:9:"createdAt";s:19:"2016-10-07 09:16:50";}
当然,该项目不会在 5 秒后过期:/(我已手动清除缓存目录)。
另一方面,如果我们使用 $latestNews->expiresAfter(5);
一切正常:
1475849350 <-- 2016-10-07 10:09:10 \o/ OK
latest_news
a:2:{s:5:"title";s:3:"...";s:9:"createdAt";s:19:"2016-10-07 10:09:05";}
Reference http://symfony.com/doc/current/components/cache/cache_items.html#cache-item-expiration
项目正确过期后 5 秒。
我用 Symfony\Component\Cache\Adapter\ApcuAdapter
测试过,也出现了同样的问题。
缓存适配器中的默认生命周期(构造函数参数)会发生什么?我在这里遗漏了一些东西:/?
是一个老问题[Cache] Fix default lifetime being ignored,影响 3.1
之前的框架版本升级 Symfony 框架应该可以解决这个问题。