Redis, Drupal ja cPanel

Redis on NoSQL, jota voi käyttää vähentämään Drupalin lataamiseen tarvittavaa tietokantakuormitusta. Asentaminen cPaneliin ja käyttöönotto Drupal-asennuksessa tapahtuu seuraavasti. 

Tietokannan asentaminen

yum install redis

Jos repositoryä ei ole asennettu, kokeile

yum install epel-release

Käynnistä redis automaattisesti 

systemctl enable redis
systemctl start redis

phpredis, tietokannan liittäminen PHP:een

Asenna phpredis, Drupal 8 Redis-moduuli vaatii tämän. Tämä on PHP-versiokohtainen, jatkossa pidettävä huolta että käytössä oleva PHP-versio on konfiguroitu vastaavasti. Voit vaihtaa tilikohtaisesti PHP:n version WHM:n MultiPHP Managerista.

/opt/cpanel/ea-php72/root/usr/bin/pecl install igbinary igbinary-devel redis

Asennuksen voi tehdä myös klikkailemalla WHM:stä

WHM->Software->Module Installers
PHP Pecl->Manage

Jos asentaminen PECLillä ei toimi, paketin voi kääntää itse. Tässä tarvitaan PHP-versiokohtainen polku kuten edellä.

git clone https://github.com/phpredis/phpredis.git
cd phpredis
/opt/cpanel/ea-php72/root/usr/bin/phpize
./configure --with-php-config=/opt/cpanel/ea_php72/root/usr/bin/php-config

Tarkista että redis on käytössä

/opt/cpanel/ea-php72/root/usr/bin/php -m|grep redis

Tai avaa rediksen UI

redis-cli

Täällä voi tutkia dataa esim komennolla

keys *

, mutta heti asennuksen jälkeen varasto on tyhjä. 

Redisin konfiguraatio ja "OOM command not allowed when used memory > maxmemory"

Tiedostosta /etc/redis.conf ota socket käyttöön poistamalla kommenttimerkit näistä

unixsocket /tmp/redis.sock
unixsocketperm 700

Lisää memory limit, muuten redis cachettaa levytilan täyteen. Varaudu säätämään raja-arvoa vastaamaan tarkoitusta. 

maxmemory 128MB

Oletuksena redis ei pudota cachea koskaan, joten kun raja tulee täyteen, tietokantaan ei voi kirjoittaa. Tästä seuraa virhe "OOM command not allowed when used memory > maxmemory." Laita LRU päälle:

maxmemory-policy volatile-lru

Asentaminen Drupaliin

Lataa ja ota käyttöön Redis.

composer require drupal/redis
drush en redis

Sivun asetuksiin, esim sites/default/settings.php seuraavsti. Käytä saittikohtaista cache_prefixiä koska Redis on yhteinen NoSQL kaikille palvelimen Drupal-asennuksille.

$conf['redis_cache_socket'] = '/tmp/redis.sock';
$settings['cache_prefix']['default'] = 'sivun_nimi_';
$settings['cache']['default']= 'cache.backend.redis';

Lisätietoja

redis.io
Asentaminen cPaneliin 
Asentaminen Ubuntuun
Mittaa sivusi nopeus, GTmetrix ja PageSpeed Insight

Twitter Facebook Instagram