2010-04-09 62 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的快速持久缓存系统,同时提供了原子操作。


如果您想了解使用哪一个。检查它们的发展状态。

相关问题