Использование Memcache
Последнее обновление Oct 20th, 2026 | История страницы | Улучшить эту страницу | Сообщить о проблеме
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
$194 per month—let's make that $500!
Learn moreТребования¶
- Работающий сервер memcached и адрес, на котором он работает
- Расширение PHP memcached, установленное на сервере с MODX
[!WARNING] Расширение называется
memcached, а неmemcache. Расширениеmemcacheудалено в PHP 7, а MODX 3.x требует PHP 8.1 или новее, поэтому на поддерживаемой установке его нет.
Настройка Memcache в MODX¶
Перейдите в системные настройки и присвойте параметру cache_handler значение xPDO\Cache\xPDOMemCached.
Значение — полное имя класса с пространством имён. Точечная форма cache.xPDOMemCache из MODX 2.x больше не разрешается: класс не загружается, в журнал пишется Could not load class: cache.xPDOMemCache, и сайт продолжает писать в файлы.
Чтобы указать MODX на сервер memcached, создайте системный параметр default_memcached_server со значением вида localhost:11211. Настройка называется по разделу кэша, который она обслуживает, поэтому каждый раздел читает собственный параметр — resource_memcached_server, scripts_memcached_server. Общий параметр memcached_server работает как значение по умолчанию.
| Параметр | По умолчанию | Назначение |
|---|---|---|
cache_handler |
xPDO\Cache\xPDOFileCache |
Класс обработчика кэша |
default_memcached_server |
localhost:11211 |
Адрес сервера memcached |
default_memcached_compression |
true |
Сжимать ли сохраняемые значения |
cache_prefix |
— | Префикс перед каждым ключом кэша |
Несколько серверов перечисляются через запятую: server1.tld:11211,server2.tld:11211.
Почему параметр может не подействовать¶
MODX создаёт менеджер кэша раньше, чем читает системные настройки из базы данных: обработчик ему нужен, чтобы их прочитать. Поэтому параметр cache_handler, сохранённый как системная настройка, вступает в силу слишком поздно — при следующем запросе MODX снова соберёт файловый обработчик и запишет кэш настроек на диск через него.
Чтобы параметр подействовал сразу, задайте обработчик в core/config/config.inc.php:
$config_options = [
'cache_handler' => 'xPDO\\Cache\\xPDOMemCached',
'default_memcached_server' => 'localhost:11211',
];
После этого очистите core/cache/, чтобы кэш настроек был собран заново через новый обработчик.
Один сервер на несколько сайтов¶
Если вы используете один экземпляр memcached для нескольких сайтов MODX, задайте каждому сайту свой cache_prefix, например site_a_. Без этого сайты будут затирать записи друг друга.
Смотрите также¶
- Кэширование — разделы кэша ядра и параметры, выбирающие их обработчик
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
$194 per month—let's make that $500!
Learn more










