Redis

redisRedis lagrar nyckel+data i minnet och är mycket snabb på just detta.
Den används för att få bättre prestanda på webbsidor genom att lagra färdiga resultat i Redis och sedan hämta dem vid behov.

Redis hemsida: http://redis.io

I den här guiden ska jag använda Redis + PHP på MacOS 10.11
Jag förutsätter att du har Homebrew installerad på din Mac.

Lade även till instruktioner för Ubuntu 17.04

Installera Redis

MacOS
brew install redis

Ubuntu
sudo apt-get install redis-server

Se om Redis är installerad

MacOS
brew list

Ubuntu
redis-cli –version

Anslut till redis

Använd kommandot redis-cli för att kunna ge kommandon till Redis.

Kör redis-cli. Skriv sedan ping så ska den svara med pong.

Skriv info så ska den svara med en massa information om redis.

Hantera nycklar (keys)

Hitta på en unik nyckel (key) för att spara din data.
Inne i redis-cli, används dessa kommandon

set
Lagrar data i Redis.
SET mykey ”Hello”

get
Läser data från Redis
GET mykey

del
Tar bort lagrad data från Redis
DEL mykey

keys
Listar alla nycklar i denna databas

select
Väljer en databas 0 till 15

type
Ger dig nyckelns datatyp. Det finns fem datatyper.

exit
Lämna redis-cli genom att skriva: exit

Det finns mängder med kommandon men dessa är basen till allting.

Installera Redis i PHP

Nu förutsätter jag att du har en webbserver installerad och att PHP är installerat.
Skapa en php fil och i den skriv phpinfo();
Surfa till filen i din webbläsare. Sök efter redis.

Om du inte hittar en sektion med redis kan du installera den så här:

MacOS
brew install --HEAD homebrew/php/php70-redis
Ubuntu
sudo apt-get install php-redis

Starta om din webbserver. Jag kör Apache och skriver då: sudo apachectl restart
Ladda om sidan med phpinfo() och sök efter en sektion om redis.

php-redis-phpinfo

Redis ini fil

Inställningarna för redis behöver du inte ändra, men de ligger här:

MacOS
/usr/local/etc/php/7.0/conf.d/ext-redis.ini
Ubuntu
/etc/redis/redis.conf

Använda redis i PHP

Här är ett exempel:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$ping = $redis->ping();
if ($ping === '+PONG') {
    $redis->set("mykey", "Hello");
    echo $redis->get("mykey");
    // $redis->del("mykey");
}

Du ser att jag kommenterat bort del-kommandot. Kör exemplet och kör sedan redis-cli
ping (du ska få pong tillbaka)
get mykey (Du ska få ”Hello” tillbaka)

Mer PHP exempel hittar du här, och här, och här.

Mer kommandon

Se vilka nycklar som ligger i redis: redis-cli keys *
Rensa alla nycklar så här: redis-cli flushall

Redis i Magento 1

Du kan aktivera användandet av Redis i Magento CE och EE via den inbyggda modulen Cm_RedisSession.

Redis i Magento 2

Om du kör Magento 2 kan du aktivera Redis som en cache.

Här är en bra guide från David Alger vad du behöver klistra in i din app/etc/env.php
Extra guide från Firebearstudio med lite mer förklaringar vad sakerna i env.php betyder.

Testa Redis i Magento

Om redis fungerar med din Magento 1/2 så ska du kunna först ladda förstasidan, det tar lite tid, sedan ska du kunna se en massa nycklar i redis.
Om du nu laddar om förstasidan ska det gå snabbt (nåja, mycket snabbare i alla fall).
Rensa nu alla nycklar och ladda om förstasidan. Då ska det gå långsamt igen.

Tänk på att Magento admin alltid är ocachead och förtvivlat långsam, speciellt på Magento 2.

EOD

CharZam