Redis Object Cache
Создает постоянный объект кэш. Работает на сервере Redis. Поддерживает Predis, PhpRedis (PECL), HHVM, репликации, кластеризации и WP-CLI.
Позволяет настроить параметры подключения, префиксы ключей кэша, репликацию/кластеризацию. Подробнее ниже.
Этот плагин является форком Redis Object Cache от Eric Mann and Erick Hitter.
pj-object-cache-red — аналог этого плагина, который работает быстрее, но у него нет страницы в админке и некоторых настроек, которые имеет этот плагин.
Подробнее про объектный кэш читайте в отдельной статье.
Параметры соединения
По умолчанию кэш объектов подключается к Redis по протоколу TCP через 127.0.0.1:6379
и устанавливает database 0
.
Чтобы настроить параметры соединения, задайте любую из следующих констант в файле wp-config.php.
- WP_REDIS_CLIENT(default: not set)
- Устанавливает клиента используемого для связи с Redis. Поддерживает hhvm, pecl и predis.
- WP_REDIS_SCHEME(default: tcp)
- Задает протокол, используемый для связи с экземпляром Redis. Внутренне клиент использует класс соединения, связанный с указанной схемой соединения. Поддерживает TCP (протокол TCP/IP), Unix (Unix сокеты домена), TLS (безопасность транспортного уровня) или HTTP (протокол HTTP через Webdis).
- WP_REDIS_HOST(default: 127.0.0.1)
- IP или имя хоста целевого сервера. Игнорируется при подключении к Redis с помощью сокетов домена UNIX.
- WP_REDIS_PORT(default: 6379)
- Порт TCP/IP целевого сервера. Игнорируется при подключении к Redis с помощью сокетов домена UNIX.
- WP_REDIS_PATH(default: not set)
- Путь файла сокета домена UNIX, используемого при подключении к Redis с помощью сокетов домена UNIX.
- WP_REDIS_DATABASE(default: 0)
- Принимает числовое значение, используемое для автоматического выбора логической базы данных с помощью команды SELECT.
- WP_REDIS_PASSWORD(default: not set)
- Принимает значение, используемое для аутентификации на сервере Redis, защищенном паролем с помощью команды AUTH.
Параметры конфигурации
Полный список параметров конфигурации: https://github.com/rhubarbgroup/redis-cache/#configuration
Чтобы настроить конфигурацию, определите любую из следующих констант в wp-config.php.
- WP_REDIS_PREFIX
- Префикс, используемый для всех ключей кэша во избежание коллизий. Заменяет WP_CACHE_KEY_SALT.
- WP_CACHE_KEY_SALT(default: not set)
Эта константа устарела, вместо нее нужно использовать WP_REDIS_PREFIX.
Задает префикс для всех ключей кэша. Полезно когда множественные установки используют общий wp-config.php или $table_prefix. Установка этой константы гарантирует уникальность ключей кэша.
- WP_REDIS_SELECTIVE_FLUSH(default: not set)
- Если задано значение true, при очистке кэша удаляются только ключи с префиксом WP_CACHE_KEY_SALT (вместо очистки всей базы данных Redis).
- WP_REDIS_MAXTTL(default: not set)
- Устанавливает максимальное время жизни (в секундах) для кэша с временем жизни 0.
- WP_REDIS_GLOBAL_GROUPS(default: ['blog-details', 'blog-id-cache', 'blog-lookup', 'global-posts', 'networks', 'rss', 'sites', 'site-details', 'site-lookup', 'site-options', 'site-transient', 'users', 'useremail', 'userlogins', 'usermeta', 'user_meta', 'userslugs'])
- Задайте список глобальных групп Кэша (network-wide групп), к которым не следует добавлять префикс blog-id (для мультисайта).
- WP_REDIS_IGNORED_GROUPS(default: ['counts', 'plugins'])
- Задает группы кэша, которые не должны кэшироваться в Redis.
- WP_REDIS_DISABLED(default: not set)
- Установите значение в true, чтобы отключить кэш объектов. Нужно для дебага.
- WP_REDIS_IGBINARY(default: not set)
- Установите значение true, чтобы включить сериализатор igbinary.
Репликация и Кластеризация
Чтобы использовать репликацию, сегментирование или кластеризацию, убедитесь, что сервер работает под управлением PHP7 или выше (HHVM не поддерживается) и обратитесь к документации Predi или PhpRedis.
Для репликации используется константа WP_REDIS_SERVERS, для сегментирования WP_REDIS_SHARDS и для кластеризация WP_REDIS_CLUSTER.
Для аутентификации используйте константу WP_REDIS_PASSWORD.
Репликация (Master-Slave):
define( 'WP_REDIS_SERVERS', [ 'tcp://127.0.0.1:6379?database=5&alias=master', 'tcp://127.0.0.2:6379?database=5&alias=slave-01', ] );
Репликация (Redis Sentinel):
define( 'WP_REDIS_CLIENT', 'predis' ); define( 'WP_REDIS_SENTINEL', 'mymaster' ); define( 'WP_REDIS_SERVERS', [ 'tcp://127.0.0.1:5380', 'tcp://127.0.0.2:5381', 'tcp://127.0.0.3:5382', ] );
Шардинг:
define( 'WP_REDIS_SHARDS', [ 'tcp://127.0.0.1:6379?database=10&alias=shard-01', 'tcp://127.0.0.2:6379?database=10&alias=shard-02', 'tcp://127.0.0.3:6379?database=10&alias=shard-03', ] );
Кластеризация (Redis 3.0+):
define( 'WP_REDIS_CLUSTER', [ 'tcp://127.0.0.1:6379?database=15&alias=node-01', 'tcp://127.0.0.2:6379?database=15&alias=node-02', ] );
Команды WP-CLI
Чтобы использовать команды WP-CLI, убедитесь, что плагин активирован:
wp plugin activate redis-cache
Поддерживаются следующие команды:
- wp redis status
- Показать состояние кэша объектов Redis и (по возможности) клиента.
- wp redis enable
- Включает кэш объектов Redis. Созадет drop-in файл object-cache.php в папке wp-content, если его там еще нет.
- wp redis disable
- Отключает кэш объектов Redis. Удаляет drop-in файл object-cache.php в папке wp-content, если это известный файл (добавлен плагином).
- wp redis update-dropin
- Обновляет drop-in файл object-cache.php в папке wp-content.