Есть ли в CakePHP поддержка APC, XCache и других? - PullRequest
4 голосов
/ 09 апреля 2010

Есть ли в CakePHP поддержка APC, XCache и других?

Ответы [ 5 ]

6 голосов
/ 10 апреля 2010

В тортах /app/config/core.php есть несколько опций для установки движков кеша (версия новее, чем 1.2) .e.g

  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 голосов
/ 09 апреля 2010

Он должен поддерживать APC как кэш кода операции - это всего лишь PHP-код, в конце концов.

И, похоже, существует класс, связанный с APC, который использует APC в качестве кэша для данных: см. ApcEngine.
См. Также в руководстве: 7.2.2 Механизмы кэширования в Cake , в которых говорится, что есть поддержка APC, XCache, File и memcached.

1 голос
/ 10 ноября 2012

В CakePhp 2.0 Apc автоматически определяется и устанавливается. В вашем core.php вы можете найти:

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

}

1 голос
/ 13 апреля 2010

Просто чтобы добавить к другим хорошим ответам, уже предоставленным, есть несколько хитростей, чтобы заставить торт использовать что-то кроме файлового кэша для внутреннего кэширования. Этот код заставит торт использовать APC, Xcache, независимо от его основного кэша (в данном примере APC)

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

Cake также может кэшировать ваши модели, поместив это в ваши контроллеры / appcontroller.

var $persistModel = true;

Однако модели могут использовать только файловый кеш

Все они были украдены из этой статьи, которая включает в себя множество способов использования механизмов кэширования тортов для ускорения вашего приложения

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

Кроме того, как уже упоминал Паскаль, при установке и настройке 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 голосов
/ 23 января 2014

Обратите внимание, что после 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.php https://github.com/cakephp/cakephp/blob/2.4.4/app/Config/core.php#L352


Начиная с 2.4.4 они поддерживаются

  • Файловый движок
  • APC
  • Wincache
  • XCache
  • Memcache
  • Redis

Документация: http://book.cakephp.org/2.0/en/core-libraries/caching.html#caching

  • FileCache Файловый кеш - это простой кеш, который использует локальные файлы. Это самый медленный механизм кэширования, и он не предоставляет столько функций для атомарных операций. Однако, поскольку дисковое хранилище часто бывает довольно дешевым, хранение больших объектов или редко записываемых элементов хорошо работает в файлах. Это механизм кэширования по умолчанию для 2.3 +

  • Кэш APCCache APC использует расширение PHP APC. Это расширение использует общую память на веб-сервере для хранения объектов. Это делает его очень быстрым и способным предоставлять элементарные функции чтения / записи. По умолчанию CakePHP в 2.0-2.2 будет использовать этот механизм кэширования, если он доступен.

  • Wincache Wincache использует расширение Wincache. Wincache похож на APC по функциям и производительности, но оптимизирован для Windows и IIS.

  • XcacheEngine Xcache - это расширение PHP, предоставляющее функции, аналогичные APC.

  • MemcacheEngine Использует расширение Memcache. Memcache обеспечивает очень быструю систему кэширования, которая может быть распределена по многим серверам, и обеспечивает атомарные операции.

  • RedisEngine Использует расширение phpredis. Redis предоставляет быструю и постоянную систему кэширования, аналогичную memcached, а также обеспечивает атомарные операции.


Если вам интересно, какой из них использовать. Проверьте состояние их разработки.

...