Redis, Drupal ja cPanel

Mikko Virtaperko
Redis käyttöön asiakkaittesi iloksi
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