Redis
Redis 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.
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