Поддерживает ли CakePHP APC, XCache и другие приложения?


Поддерживает ли CakePHP APC, XCache и другие приложения?

Author: ThinkingStiff, 2010-04-09

5 answers

В cake /app/config/core.php есть несколько вариантов настройки механизмов кэширования (версия новее 1.2). например

  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
));
 6
Author: Young, 2010-04-10 00:13:17

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

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

 4
Author: Pascal MARTIN, 2010-04-09 18:39:44

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

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

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

var $persistModel = true;

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

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

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');
 1
Author: JoeyP, 2010-04-13 14:20:04

В 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
Author: giuseppe, 2012-11-10 09:59:47

Обратите внимание, что после 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
  • Винкаш
  • XCache
  • Кэш памяти
  • Редис

Документация: 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, а также обеспечивает атомарную операции.


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

 0
Author: trante, 2014-01-22 20:55:31