Руководство:$wgMainCacheType
| Кэш: $wgMainCacheType | |
|---|---|
| Настройка кэша объектов |
|
| Введено в версии: | 1.5.0 |
| Удалено в версии: | всё ещё используется |
| Допустимые значения: | (Одна из констант CACHE (см. ниже) или строка, указывающая на тип кэша, установленный в качестве ключа в $wgObjectCaches) |
| Значение по умолчанию: | CACHE_NONE |
| Другие настройки: По алфавиту | По функциональности | |
Подробнее
Позволяет настроить используемый кэш объектов.
Вот ключи, доступные по умолчанию (определены как константы в Defines.php):
CACHE_NONE– Не кэшировать (по умолчанию).CACHE_ANYTHING– Используйте $wgMessageCacheType или $wgParserCacheType, если они установлены не наCACHE_NONEилиCACHE_ANYTHING. В противном случае используйтеCACHE_DB.CACHE_ACCEL– Используйте APCu или $2 или OPcache, если есть возможность. (maintenance/install.php will add the line$wgMainCacheType = CACHE_ACCEL;to your config.)CACHE_MEMCACHED– Используйте memcached, если он доступен. Серверы должны быть дополнительно указаны в $wgMemCachedServers.CACHE_DB– Используйте таблицу базы данных objectcache.
- Внимание: Это потенциально может быть медленнее, чем отсутствие кэширования, то есть
CACHE_NONE.
PHP работает путем компиляции файла PHP в байт-код и последующего выполнения этого байт-кода. Процесс компиляции большого приложения, такого как MediaWiki, занимает значительное время. Ускорители PHP работают, сохраняя скомпилированный байт-код и выполняя его напрямую, сокращая время, компиляции кода.
OPcache включен в PHP 5.5.0 и более поздние версии и является рекомендуемым ускорителем для MediaWiki. Другими поддерживаемыми кэшами опкода являются: WinCache.
Кэши опкодов хранят скомпилированный вывод PHP-скриптов, что значительно сокращает время, необходимое для многократного запуска скрипта. MediaWiki не нужно настраивать на кэширование байткода PHP, он будет "просто работать" после установки и включения.
Пример пользовательского кэш-бэкенда (например, Redis) приведен в статье $wgObjectCaches.
- Было заявлено, что директива
CACHE_MEMCACHEDобеспечит наиболее значительное повышение производительности в случае, если у вас установлены memcached и кэш опкодов. - Это всего лишь одна из настроек кэширования MediaWiki. Для достижения наилучшей производительности вам может понадобиться рассмотреть другие настройки кэширования. См. performance tuning.
- Начиная с MediaWiki 1.27, сессии PHP хранятся в кэше, в зависимости от переменной этого параметра, если он не переопределен $wgSessionCacheType. Это может вызвать проблемы при использовании
CACHE_ACCEL, если apcu неправильно сконфигурирован. (see T147161).
Login session problem with APCu in a multi process or multi server environment
$wgSessionCacheType inherits $wgMainCacheType unless configured otherwise.
Selecting CACHE_ACCEL as the cache type can cause inconsistent behavior where session data is lost, and the user must log back in. This is because php-fpm processes can be ephemeral or not good at talking to each other. There can also be problems in a multi-server environment.
The workaround is to use the database to store these sessions. Add the following line to LocalSettings.php
$wgSessionCacheType = CACHE_DB;