2010-04-09 131 views

回答

6

在蛋糕的/app/config/core.php,也有一些選項供您設置的高速緩存引擎(版本比1.2新).eg

APC (http://pecl.php.net/package/APC) 

Cache::config('default', array(
    'engine' => 'Apc', //[required] 
    'duration'=> 3600, //[optional] 
    'probability'=> 100, //[optional] 
    'prefix' => Inflector::slug(APP_DIR) . '_', //[optional] prefix every  cache file with this string 
)); 
4

它應該支持APC作爲操作碼緩存 - 它只是PHP代碼,畢竟。

而且似乎有一個APC相關的類使用APC作爲數據緩存:請參閱ApcEngine
另請參閱手冊:7.2.2 Cache Engines in Cake,其中說明支持APC,XCache,File和memcached。

1

只需添加到已經提供的另一個很好的答案,也有一些技巧,得到蛋糕來使用文件緩存以外的任何東西來進行內部緩存。此代碼將做蛋糕用APC,XCache將,無論對於它的核心高速緩存(APC在這個例子中)

Cache::config('_cake_core_', 
    array(
     'engine' => 'Apc', 
     'duration'=> 3600, 
     'probability'=> 100, 
    ) 
); 

蛋糕也可以把這個在你的控制器/ AppController中緩存你的模型。

var $persistModel = true; 

不過,模型只能使用文件緩存

這些都是從這篇文章,其中包括了一堆的方法來使用蛋糕的緩存機制,以加快您的應用程序被盜

http://www.pseudocoder.com/archives/8-ways-to-speed-up-cakephp-apps

另外,正如Pascal所述,通過安裝和配置APC,您的PHP操作碼會自動緩存。

爲了獲得更好的緩存效果,php支持將memcache作爲會話存儲的替代文件,這對於負載均衡環境尤其有用。一個單一的服務器上執行的一個例子是把這個在您的INI

extension=memcache.so 
session.save_handler = memcache 
session.save_path = "tcp://127.0.0.1:11211?persistent=1" 

這在core.php中

Configure::write('Session.save', 'php'); 
+0

約WINCACHE任何想法? – JPro 2010-04-13 15:13:52

1

在CakePHP 2.0裝甲運兵車被自動檢測和設置。在你core.php中,你可以找到:

$engine = 'File'; 
if (extension_loaded('apc') && function_exists('apc_dec') && (php_sapi_name() !== 'cli' || ini_get('apc.enable_cli'))) { 
    $engine = 'Apc'; 

}

0

注意,CakePHP的2.2後,自動檢測APC被禁用。

在2.2.1 APC被使用時,如果檢測到的:https://github.com/cakephp/cakephp/blob/2.2.1/app/Config/core.php

由於2.3默認發動機是 「文件」。最新的穩定/app/Config/core.phphttps://github.com/cakephp/cakephp/blob/2.4.4/app/Config/core.php#L352


由於2.4。4,這些都支持

  • 文件引擎
  • APC
  • WINCACHE
  • 了XCache
  • 內存緩存
  • Redis的

文檔: http://book.cakephp.org/2.0/en/core-libraries/caching.html#caching

  • FileCache文件緩存是使用本地文件的簡單緩存。它是最慢的緩存引擎,並沒有爲原子操作提供儘可能多的功能。但是,由於磁盤存儲通常非常便宜,因此存儲大型對象或不常寫入的元素在文件中運行良好。這是2.3 +的默認緩存引擎

  • ApcCache APC緩存使用PHP APC擴展。該擴展使用Web服務器上的共享內存來存儲對象。這使得它非常快速,並且能夠提供原子讀/寫功能。默認情況下,2.0-2.2中的CakePHP將使用此緩存引擎(如果可用)。

  • Wincache Wincache使用Wincache擴展。 Wincache在功能和性能方面與APC類似,但針對Windows和IIS進行了優化。

  • XcacheEngine Xcache是​​一個PHP擴展,它提供了與APC類似的功能。

  • MemcacheEngine使用Memcache擴展。 Memcache提供了一個非常快速的緩存系統,可以分佈在多個服務器上,並提供原子操作。

  • RedisEngine使用phpredis擴展名。 Redis提供了類似於memcached的快速持久緩存系統,同時提供了原子操作。


如果您想了解使用哪一個。檢查它們的發展狀態。