2012-05-01 8 views

答えて

0

私はCIのキャッシュを試み、それが良かった... 人々のほとんどは、これはあなた自身の選択であり、あなたのプロジェクトの要件に基づいて決定する必要があると言うだろうが...

が、確かに最高の答えは、これを試してみて、あなたのケースに最適なものを選んでください。

+0

:次に、あなたはこのようにそれを使用することができます

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); /* | ------------------------------------------------------------------- | Stash Cache settings | ------------------------------------------------------------------- | */ $config['stash'] = array('path' => APPPATH .'/cache'); 

を異なるキャッシュ要素を一緒に使用する。私はいつも、キャッシュされたアイテムを後で大量の無効化のために何らかの方法でグループ化する必要があるようです。 –

0

あなたのニーズに応じて異なります。

さらに具体的なものは必要ありませんが、ページ全体のキャッシュに問題がなければ、Web Page Cachingを使用してください。これは非常に簡単で、あなたに合っています。

もっと具体的なものがある場合は、Caching Driverを試してみてください。さまざまな種類のキャッシュ(memcacheを含む)を使用できるようにしてください。最も大きな利点は、コードの特定のチャンクをキャッシュすることができることです(さまざまなページモジュールが必要なプロジェクトに非常に便利です)。

また、第三者のものを試してみたいと思うなら、Phil Sturgeon 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); 
    } 
} 

?> 

ちょうどこの簡単な設定ファイルを使用します。それはグループ化の方法がない、特に以来、私はCIキャッシュがひどく欠けて見つける

$this->load->library('Stash'); 
$cache = $this->stash->getCache(array('key1','subkey1','subkey2')); 
$cache->set('foo', 'bar', 30);