1. Hem
  2. Hemsidor
  3. Hur använder jag Redis?

Hur använder jag Redis?

Den här guiden är för avancerade användare. Vi kommer därför inte förklara allting väldigt ingående utan du förväntas ha viss förkunskap om t.ex. hur man använder SSH.

Redis är en enklare databas vilket användas oftast för mellanlagring av din hemsida, en s.k. cache, motsvarande Memcached. Kortfattat så sparas allt arbete som behövs för att din hemsida ska presenteras och hämtas direkt från Redis istället för att genereras på nytt. Redis har lite större utbud i funktionalitet än Memcached, det finns en post på Stack Overflow som benar ut skillnaderna.

Varje användare har en egen databas-process på 128MB RAM, detta är 128MB som inte tas ifrån ditt webbhotellkonto. Om minnet tar slut så tar den bort poster som används minst. Vi håller koll på att den är igång och startar om automatiskt vid behov.

När du får ditt webhotellkonto så finns det en fil (socket) som används för att ansluta till databasen, vanligtvis anger man /tmp/redis alternativt unix:///tmp/redis i cache-verktygen för att ansluta mot den, detta kan dock skilja mellan olika verktyg. Om du är osäker kan du söka på unixsocket och ditt verktyg på t.ex. Google.

För att övervaka databasen så finns det ett kommando som du kan köra via SSH som heter redis-cli. Det finns ett antal funktioner i det t.ex. kan du se exakt vad som händer:

$ redis-cli monitor
OK
1427386062.692786 [0 unix:/home/premiumf/.cagefs/tmp/redis] "HGETALL" "bbca3ea68a53e7952746225fec2ba321:cache_bootstrap:module_implements"
1427386062.693520 [0 unix:/home/premiumf/.cagefs/tmp/redis] "HGET" "bbca3ea68a53e7952746225fec2ba321:path:s:en" "node"
1427386062.693611 [0 unix:/home/premiumf/.cagefs/tmp/redis] "HGET" "bbca3ea68a53e7952746225fec2ba321:path:s:und" "node"
1427386062.696717 [0 unix:/home/premiumf/.cagefs/tmp/redis] "HGETALL" "bbca3ea68a53e7952746225fec2ba321:cache:node_types:en"
1427386062.698352 [0 unix:/home/premiumf/.cagefs/tmp/redis] "HGETALL" "bbca3ea68a53e7952746225fec2ba321:cache_menu:local_tasks:node"

Du kan också köra kommandon direkt mot databasen t.ex. flush-kommandot som rensar hela databasen.

$ redis-cli
redis /tmp/redis> FLUSHALL

WordPress

Redis går att använda som ett cache-system för WordPress med ett plugin som heter Redis Object Cache. När du har installerat det pluginet behöver du redigera din hemsidas wp-config.php-fil.

Du behöver lägga till följande rader i wp-config.php:

define('WP_REDIS_CLIENT', 'pecl');
define('WP_REDIS_SCHEME', 'unix');
define('WP_REDIS_PATH', '/tmp/redis');

Observera att om du har flera WordPress hemsidor som använder samma redis-databas, exempelvis flera installationer på ett webbhotellskonto, som även har samma databastabell-prefix så kommer deras cache att krocka. Det är även bra att göra så cachen rensas separat om man har något annat som använder redis-databasen. För att fixa detta så kan man ange följande inställningar i wp-config.php:

/* Replace "example" with something unique for each site */
define( 'WP_CACHE_KEY_SALT', 'example' );
define( 'WP_REDIS_SELECTIVE_FLUSH', true);

De ovanstående inställningarna måste läggas in precis ovanför den här raden:

/* That's all, stop editing! Happy blogging. */

I WordPress-admin gå nu till Inställningar -> Redis och klicka där på Enable Object Cache. Nu ska Redis vara igång på din hemsida!

Drupal

Börja med att installera Redis-modulen i Drupal, du kan ladda ner modulen här. Om du använder Drupal 8 så rekommenderar vi att du laddar ner dev-versionen så att du får den absolut senaste versionen.

Installera sedan modulen via Drupals admingränssnitt.

Lägg nu till följande längst ner i filen sites/default/settings.php

Drupal 7:

 $conf['redis_client_interface'] = 'PhpRedis'; // Can be "Predis".
 $conf['redis_client_socket'] = '/tmp/redis'; // Your Redis instance hostname.
 $conf['lock_inc'] = 'sites/all/modules/redis/redis.lock.inc';
 $conf['path_inc'] = 'sites/all/modules/redis/redis.path.inc';
 $conf['cache_backends'][] = 'sites/all/modules/redis/redis.autoload.inc';
 $conf['cache_default_class'] = 'Redis_Cache';

Drupal 8:

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

$settings['cache']['bins']['bootstrap'] = 'cache.backend.chainedfast';
$settings['cache']['bins']['discovery'] = 'cache.backend.chainedfast';
$settings['cache']['bins']['config'] = 'cache.backend.chainedfast';

$settings['container_yamls'][] = 'modules/redis/example.services.yml';

$settings['redis.connection']['host']      = '/tmp/redis';
$settings['redis.connection']['port']      = NULL;

Nu kan du köra redis-cli monitor via SSH och samtidigt gå in på din hemsida för att verifiera att Redis fungerar.

Joomla

Joomla har inbyggt stöd för Redis så du behöver inget plugin för att kunna använda det. Du behöver använda nedanstående uppgifter för att Joomla ska kunna koppla upp mot Redis hos oss.

Magento

Denna metod ska fungera på Magento 2.3 och uppåt. Om du kör en tidigare version av Magento så rekommenderar vi att du kollar upp instruktioner för din specifika version i Magentos dokumentation.

Stöd för Redis ingår i Magento så det enda du behöver göra är att konfigurera det. För att konfigurera det behöver du koppla upp med SSH eller om du inte är van vid SSH så kan du använda terminalen i cPanel.

Du behöver nu ställa dig i dokumentroten för din hemsida. Om domännamnet som hemsidan använder är huvuddomän på ditt webbhotellkonto så är dokumentroten public_html. Om den inte är huvuddomän så kan du se vad dokumentroten är på samma ställe som där du kan ändra den. När du vet vad dokumentroten är kan du använda cd-kommandot för att ställa dig i den, t.ex:

cd sökvägen_till_dokumentroten

Du behöver sedan köra följande kommandon:

chmod 755 bin/magento

För att aktivera vad Magento kallar för page cache:

bin/magento setup:config:set --page-cache=redis --page-cache-redis-server=/tmp/redis --page-cache-redis-db=1 --page-cache-redis-port=0

För att aktivera vad Magento kallar för default cache:

bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-server=/tmp/redis --cache-backend-redis-db=0 --cache-backend-redis-port=0

Mer information finns i Magentos dokumentation.

Hjälpte den här guiden dig?

Relaterade guider

Behöver du mer hjälp?
Kan du inte hitta lösningen på ditt problem? Då kan du kontakta oss via e-post, chatt och telefon!
KONTAKTA OSS