我应该使用哪个缓存来减少页面的加载时间 - 元缓存或 Codeigniter 缓存。
请建议。
我最近使用了 Stash;http://code.google.com/p/stash/,在工作中很棒。它使用分层密钥结构,这对于缓存相关项目非常有用。
我使用这个库文件将它集成为第三方包,然后我就走了。
<?php
class Stash {
private $_pool;
public function __construct($options)
{
include_once APPPATH . '/third_party/Stash/autoload.php';
if (isset($options['stash']) && isset($options['stash']['path'])) {
if (substr($options['stash']['path'], 0, 1) != '/') {
$options['stash']['path'] = getcwd() . '/' . $options['stash']['path'];
}
}
$handler = new Stash\Handler\FileSystem(@$options['stash']);
$this->_pool = new Stash\Pool;
$this->_pool->setHandler($handler);
}
public function getCache($path)
{
return $this->_pool->getCache($path);
}
}
?>
只需使用这个简单的配置文件:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| Stash Cache settings
| -------------------------------------------------------------------
|
*/
$config['stash'] = array('path' => APPPATH .'/cache');
然后你可以像这样使用它:
$this->load->library('Stash');
$cache = $this->stash->getCache(array('key1','subkey1','subkey2'));
$cache->set('foo', 'bar', 30);
取决于你的需求。
如果您不需要更具体的内容并且缓存整个页面没有问题,则应该使用Web Page Caching。这非常简单,适合您。
如果它更具体,也许您应该尝试查看Caching Driver,它允许您使用各种不同类型的缓存(包括 memcache)。最大的优势是您可以缓存特定的代码块(对于具有不同页面模块需求的项目非常有用)。
而且,如果你想尝试一些第三方的东西,我强烈推荐 Phil Sturgeon CodeIgniter 缓存库,它也适用于代码块,而且非常易于使用,可以快速生成基于文本的缓存。
问候!
对我来说,我尝试了 CI Cache,效果很好……大多数人会说这是您自己的选择,您必须根据您的项目要求来决定..
但可以肯定的是,最好的答案是尝试这个并尝试那个然后为你的情况选择最好的