Модуль Drupal Redis не подключается к PHP-Redis

Я пытаюсь включить Redis на своем сайте Drupal, но когда я проверяю статус модуля, я продолжаю получать это предупреждающее сообщение:

Клиент Redis не подключен, этот модуль бесполезен. Убедитесь, что вы включили модуль, использующий его, или отключите его.

Я работаю над веб-сайтом Drupal 8, работающим на виртуальной машине с Drupal-vm.

Шаги, которые я выполнил, чтобы включить Redis:

  1. Отредактировал Drupal-vm config.yml

    installed_extras:

    • redis
    • php-redis

  1. Включил модуль Redis в Drupal

  1. Отредактировал settings.php

$ settings ['cache'] ['default'] = 'cache.backend.redis';

$ settings ['redis.connection'] ['interface'] = 'PhpRedis';

$ settings ['container_yamls'] [] = 'модули / redis / example.services.yml';

$ settings ['container_yamls'] [] = 'модули / redis / redis.services.yml';


Я также попытался выполнить следующий код в index.php, и кеш, похоже, работает:

$redis = new Redis();
$redis->connect('127.0.0.1');
$cache = $redis->get('key');
//Cache miss
if($cache === false) {
  echo "miss";
  $cache = "test";
  $redis->set('key',$cache);
}else{
  echo "didn't miss";
}
// At this point $cache is either the retrieved cache or a fresh copy, so echo it
echo $cache;
exit();

Похоже, что Redis работает, но по какой-то причине не используется Drupal.


person TheBauer    schedule 05.12.2018    source источник


Ответы (1)


Установите Redis. Redis можно настроить в том же окне, что и ваш веб-сервер, или самостоятельно. Чтобы установить Redis в Ubuntu, выполните следующие команды:

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:chris-lea/redis-server

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install redis-server

Настроить Redis. Redis готов к запуску и настроен на сохранение данных прямо из коробки.

Установите библиотеку PhpRedis. Загрузите и установите модуль Redis Drupal. Вам не нужно включать этот модуль. Настройте свой сайт Drupal для использования Redis для кэширования вместо таблиц базы данных кеша Drupal. В settings.php или settings.local.php добавьте:

/**
 * Redis Configuration.
 */
$conf['chq_redis_cache_enabled'] = TRUE;
if (isset($conf['chq_redis_cache_enabled']) && $conf['chq_redis_cache_enabled']) {
  $settings['redis.connection']['interface'] = 'PhpRedis';
  $settings['cache']['default'] = 'cache.backend.redis';
  // Note that unlike memcached, redis persists cache items to disk so we can
  // actually store cache_class_cache_form in the default cache.
  $conf['cache_class_cache'] = 'Redis_Cache';
}
person lakshman    schedule 05.12.2018
comment
Привет, спасибо за ответ, но, как я уже упоминал, redis установлен и работает, в то время как значения конфигурации, которые вы опубликовали, такие же, как я указал в моем вопросе. Единственное дополнительное значение в вашем ответе: $ conf ['cache_class_cache'] = 'Redis_Cache'; который я уже пробовал без результатов (я уже гуглил эту проблему в течение целого дня и тестировал все возможные конфигурации, которые я мог скопировать / вставить, включая вашу :(). - person TheBauer; 05.12.2018
comment
Я, конечно, тоже спрашивал на drupal.org;) Но ответа пока нет. - person TheBauer; 05.12.2018
comment
вы можете дать мне ссылку, которую вы разместили? - person lakshman; 06.12.2018