2012-05-01 243 views

回答

0

對我來說,我試圖CI緩存,這是很好的...... 大多數人會說,這是你自己的選擇,你必須根據你的項目需求來決定..

但可以肯定的最好的答案是嘗試這個,然後嘗試,然後選擇最適合您的情況

+0

我發現CI緩存嚴重缺乏,特別是因爲它沒有分組的方式不同的緩存元素一起。我似乎總是需要以某種方式將緩存的項目組合在一起,以便以後進行大規模失效。 –

0

取決於您的需求。

如果你不需要更具體一些,並且緩存整個頁面沒有問題,你應該使用Web Page Caching。這非常非常簡單,並且適合你。

如果它是更具體的東西,也許你應該看看Caching Driver,它允許你使用各種不同類型的緩存(包括memcache)。最大的優點是可以緩存特定的代碼塊(對於需要不同頁面模塊的項目非常有用)。

而且,如果你想嘗試一些三部分組成的東西,我強烈建議更換菲爾鱘CodeIgniter Cache Library,也至極用代碼塊的工作原理,它是非常容易使用,快速生成基於文本的高速緩存。

問候!

0

我最近用了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);