【问题标题】:Meta Cache or Codeigniter Cache元缓存或 Codeigniter 缓存
【发布时间】:2012-05-01 08:19:36
【问题描述】:

我应该使用哪个缓存来减少页面的加载时间 - 元缓存或 Codeigniter 缓存。

请提出建议。

【问题讨论】:

    标签: html codeigniter caching


    【解决方案1】:

    对我来说,我尝试了 CI Cache,它很好...... 大多数人会说这是你自己的选择,你必须根据你的项目要求来决定..

    但可以肯定的是,最好的答案是尝试这个并尝试那个然后为你的情况选择最好的

    【讨论】:

    • 我发现 CI Cache 严重不足,尤其是因为它无法将不同的缓存元素组合在一起。我似乎总是需要以某种方式将缓存的项目组合在一起,以便以后大量失效。
    【解决方案2】:

    取决于你的需求。

    如果您不需要更具体的内容并且缓存整个页面没有问题,您应该使用Web Page Caching。这非常简单,适合您。

    如果它更具体,也许您应该尝试查看Caching Driver,它允许您使用各种不同类型的缓存(包括 memcache)。最大的好处是你可以缓存特定的代码块(对于具有不同页面模块需求的项目非常有用)。

    而且,如果你想尝试一些第三方的东西,我强烈推荐 Phil Sturgeon CodeIgniter Cache Library,它也适用于代码块,而且非常易于使用,可以快速生成基于文本的缓存。

    问候!

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-15
        • 2010-09-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多