我正在使用带有zend框架和zend_cache的php。我有这些代码行:'
$frontendOptions = array ('lifetime' => 12 * 3600, 'automatic_serialization' => true );
$backendOptions = array ('cache_dir' => APPLICATION_PATH . '/../tmp');
$cache = Zend_Cache::factory ( 'Core', 'File', $frontendOptions, $backendOptions );
$CacheName = ('CACHE_NAME');
$CacheResult = $cache->load ( $CacheName );
if($CacheResult==false)
echo 'no cache or chache is expired';
else
var_dump($CacheResult);`
问题是当我使用这样的保存函数时:
$cache->save($data,$CacheName);
我不希望更新过期时间。有没有办法在不更新过期时间的情况下更新缓存?
首先,ZF1 的Zend_Cache将给定的生命周期存储为固定的过期时间。因此,您只需根据当前时间和到期时间计算当前生存期:
$lifetime = $expirationTime - time();
if ($lifetime > 0) {
$cache->save($data, $id, $tags, $lifetime);
}
PS:在ZF2中,您必须检查存储是否以当前时间,mtime和给定TTL(如文件系统)或存储的固定到期时间(如memcache/apc)为基础检查过期时间。