Zend缓存存在函数



我在当前项目中使用Zend Cache,它运行良好
但我希望它能更快地工作,所以我想在使用zend缓存的加载函数之前检查缓存是否存在
以下是我的代码:

$cache = Zend_Registry::get('cache');
if(!$result = $cache->load('firstfile')) {
    $newArray = 'firstfile';
    $cache->save($newArray, 'firstfile');
} else {
    echo 'retrieving cache data';
    Zend_Debug::dump($result);
}

我阅读了zend缓存的文档。它说我们只使用这种方式加载来检查缓存是否存在。我想知道是否有其他类似hasCached的zend缓存函数可用,这样我们就可以在使用加载函数之前使用它来检查缓存是否存在。

提前感谢…:)

恐怕没有这样的函数。

ZendCache是其他几种缓存机制的包装器。我不是100%熟悉它们,例如,我不知道Redis或XCache是否提供了一种检查缓存密钥是否存在的方法。

APC不存在-如果尝试加载缓存条目失败,则密钥不存在。

Memcached和Memcached不一样——和上面一样。

在文件缓存的情况下,检查密钥的存在涉及到文件查找,这本身就很慢。

数据库缓存也是如此——您需要启动SQL查询,而SQL查询本身相对较慢。

如果底层缓存后端无法检查缓存密钥的存在,那么Zend cache除了在后台运行load函数之外,没有其他方法可以提供它,这根本无法实现具有hasKey函数的目的。在"慢速"缓存机制的情况下,查找实际上会使您的速度更慢。

getIds()函数返回存储的缓存ID的数组。

所以我想你可以试试这样的东西:

$id_list =  $cache->getIds();
if (in_array('firstfile', $id_list)) {
    $result = $cache->load('firstfile');
}

我没有测试它,只是一个想法。:)

相关内容

  • 没有找到相关文章

最新更新