Использование Memcache
Последнее обновление Apr 29th, 2019 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$311 per month—let's make that $500!
Learn moreТребования¶
Для начала вам понадобится следующее:
- Работающий сервер memcached и адрес, на котором он работает
- Расширение PHP memcached, установленное на сервере с MODX
Настройка Memcache в MODX¶
Перейдите в системные настройки и измените системный параметр cache_handler
на cache.xPDOMemCache
.
Если на вашем сервере имеется более одного сайта MODX с обработчиком кэша cache.xPDOMemCache
, вам необходимо создать новый системный параметр cache_prefix
со значением, например yoursite_
, чтобы различать ключи кэша для разных сайтов.
Если ваш сервер memcached находится на отдельном сервере, вы можете установить путь к нему с помощью системного параметра resource_memcached_server
со значением, например «memcache.tld: 121212»
Возможные трудности¶
Решение проблемы получения пустых значений системных настроек с помощью:
$modx->getOption('system_field')
Для чтения системных настроек из базы данных требуется инициализация MODx.
Инициализация требует предварительного чтения конфигов. Получается — пока MODX не получил данные из базы данных, он использует конфиги файловые, в том числе и значения по умолчанию. А так как настройка cache_handler=cache.xPDOMemCached
хранится в базе данных, то в момент инициализации MODX еще ничего о ней не знает, и соответственно использует стандартный файловый кеш-провайдер. И получив настройки из БД, он только потом начинает использовать Memcached.
Но до этого успевает записать конфиги в файлы, и каждый раз при старте читает конфиги из файлов.
Чтобы этого не происходило и чтобы он сразу использовал Memcached, необходимо в core/config/config.inc.php
в $config_options
прописать:
$config_options = array (
"cache_handler" => "cache.xPDOMemCached",
);
Смотрите также¶
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$311 per month—let's make that $500!
Learn more