Redis je výkonný systém pre ukladanie dát do pamäte (in-memory databáza). To znamená, že urýchľuje načítavanie stránok, znižuje záťaž databázy a zlepšuje celkový výkon webu.
V redakčných systémoch ako napríklad WordPress, Joomla, alebo PrestaShop sa používa ako objektová cache. Redis však môžu využívať všetky aplikácie ktoré používajú PHP, dostupný je od verzie PHP 7.4 a vyššie.
Na našej infraštruktúre je Redis prevádzkovaný cez unix socket, čo prináša vyššiu rýchlosť a bezpečnosť.
-----------------------------------
Návod na nastavenie Redis cache vo WordPresse.
-----------------------------------
1. Nainštalujte plugin
V administrácii WordPress si pridajte a aktivujte plugin **Redis Object Cache**.
2. Upravte súbor wp-config.php
Vo svojom FTP/SSH si otvorte súbor `wp-config.php` (nachádza sa v koreňovom/root priečinku vašej WordPress inštalácie).
Pred riadok
/* That's all, stop editing! Happy publishing. */
vložte nasledujúci kód: /xx111111- je Váš login hostingu/
define('WP_REDIS_CLIENT', 'phpredis');
define('WP_REDIS_SCHEME', 'unix');
define('WP_REDIS_PATH', '/home/xx111111/tmp/redis.sock');
define('WP_REDIS_MAXTTL', 3600);
taktiež je môžete doplniť volitelné - KEY_SALT
Čo je KEY_SALT?
Je to označenie (prefix), ktoré WordPress používa pri ukladaní dát do Redis cache. Vďaka nemu sa dá odlíšiť cache rôznych webov, napríklad ak vám na jednom serveri beží viac WordPress inštalácií.
Umožňuje tak oddeliť od seba jednotlivé redisové priestory, napríklad cache pre jednotlivé weby alebo produkciu od testu.
Pokiaľ spravujete iba jeden web, nie je potrebné ho definovať. Pri viacerých weboch ho určite odporúčame nastaviť, aby neprišlo k náhodným kolíziám obsahu.
Ako má vyzerať?
Môže to byť akýkoľvek krátky text, ktorý identifikuje daný web alebo prostredie. Mal by obsahovať len písmená a čísla, na konci podčiarkovník _.
Napríklad:
define('WP_CACHE_KEY_SALT', 'webA_sk_prod_'); a druhý web ->
define('WP_CACHE_KEY_SALT', 'webB_sk_prod_'); a tretí web ->
define('WP_CACHE_KEY_SALT', 'webC_sk_prod_');
alebo:
define('WP_CACHE_KEY_SALT', 'mojweb_');
define('WP_CACHE_KEY_SALT', 'eshop_prod_');
define('WP_CACHE_KEY_SALT', 'testovaciweb_');
prefix/salt je tiež možné kedykoľvek zmeniť, ak chcete začať používať cache odznova. Redis cache sa tým "vyprázdni" bez potreby ručne ju mazať. Staré dáta síce ostanú v Redise, ale WordPress ich už nebude používať, pretože nové kľúče budú mať iný prefix. Web teda začne v Redise používať úplne nové mená kľúčov pre všetky cacheované dáta. Stará cache sa dá neskôr manuálne zmazať, ale nie je nutné to robiť hneď.
3. Uložte zmeny a počkajte
Po uložení súboru počkajte 1–2 minúty, aby sa WordPress pripojenie inicializovalo.
4. Overte nastavenie v administrácii
V administrácii WordPress prejdite do sekcie **Nastavenia → Redis**. Malo by sa zobraziť, že pripojenie k Redis je aktívne.
5. Zapnite cache
Kliknite na tlačidlo **Enable Object Cache**.
Hotovo – Redis cache je od tohto momentu aktívna a vaše WordPress stránky budú načítané rýchlejšie.
-----------------------------------
Návod na nastavenie Redis cache v Joomle.
-----------------------------------
1. Prihláste sa do administrácie Joomly.
2. Prejdite do sekcie **System → Global Configuration → Cache Settings**.
3. V časti Cache Handler vyberte možnosť **Redis**.
4. Nastavte tieto parametre:
- Redis Server: unix:///home/xx111111/tmp/redis.sock
- Redis Port: nechajte prázdne (používa sa socket, nie port)
- Redis Database: 0
- Redis Password: nechajte prázdne (nie je potrebné)
- Persistent: Yes/No podľa potreby (odporúčame Yes)
5. Uložte nastavenia.
Po týchto krokoch bude Joomla využívať Redis cache, čím sa zrýchli načítavanie stránok a zníži zaťaženie databázy.
-----------------------------------
Návod na nastavenie Redis cache v PrestaShope.
-----------------------------------
1. Prihláste sa do administrácie (Back Office).
2. Otvorte Pokročilé nastavenia → Výkon (Advanced Parameters → Performance).
V časti Caching / Ukladanie do vyrovnávacej pamäte nastavte:
- Použiť cache: ÁNO
- Systém cache: Redis
3. Zobrazia sa nové polia. Vyplňte nasledovne:
- Server: /home/xx111111/tmp/redis.sock
- Port: nechajte prázdne (alebo 0 – podľa toho, čo Prestashop povolí)
- Heslo: nechajte prázdne
- Prefix (key_salt): napríklad mojshop_ (odporúčané – oddeľuje cache medzi rôznymi webmi)
4. Kliknite Uložiť a následne Vyprázdniť cache, ak sa zobrazí možnosť.
V prostredí PrestaShopu má parameter key_salt podobný význam ako vo WordPresse – využíva sa pri Redis cache ako prefix pre kľúče, aby sa predišlo kolíziám medzi rôznymi inštaláciami.
Čo je key_salt v PrestaShope?
key_salt je unikátny textový prefix, ktorý sa pridáva pred všetky názvy (kľúče) dát uložených v Redis cache.
Slúži podobne ako vo WordPresse na oddelenie cache medzi rôznymi e-shopmi alebo prostrediami – napríklad medzi testovacím a produkčným e-shopom, alebo ak máte viacero PrestaShopov napojených na ten istý Redis server.
Kedy a prečo ho nastaviť?
Ak máte iba jeden PrestaShop, môžete ho nechať prázdny. Ak máte viacero PrestaShopov využívajúcich rovnaký Redis server, určite ho definujte – inak by sa mohla cache medzi webmi miešať.
Ako má vyzerať?
Môže obsahovať písmená a čísla, odporúča sa ukončiť ho podčiarkovníkom _.
Príklady:
'key_salt' => 'eshop_prod_',
'key_salt' => 'eshop_test_',
Ako funguje zmena key_salt?
Pri zmene hodnoty sa začne vytvárať nová cache s novým prefixom – ideálny spôsob, ako „reštartovať“ Redis cache bez mazania dát.
Staršie verzie PretaShopu však unix nepodporujú, bude tak potrebné redakčný systém buď zaktualizovat, alebo použiť plugin/modul.
-----------------------------------
Návod na nastavenie Redis cache v Custom weboch.
-----------------------------------
Nastavenie pre sessions:
<?php
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'unix:///home/cc012900/tmp/redis.sock?persistent=1&prefix=myapp_sess_&database=0');
session_start();
Nastavenie pre php cache - uvádzame iba príklad, líši sa to podľa verzie php a logiky stránok:
-----------------------------------
Ukladanie sessions do Redis.
-----------------------------------
Sessions (relácie) sú krátkodobé údaje, ktoré si web zapamätáva medzi jednotlivými požiadavkami – napríklad obsah nákupného košíka, stav prihlásenia alebo rozpracovaný formulár. Bežne sa ukladajú do súborov na disku, čo je spoľahlivé, ale pri vyššej návštevnosti pomalšie. Alternatívou je uloženie do pamäte – napríklad cez Redis, čo je výrazne rýchlejšie a zároveň odľahčuje databázu aj disk.
Porovnanie spôsobov ukladania:
- Súbory (default): Spoľahlivé, ale pri väčšom počte používateľov pomalšie.
- Databáza: Centrálne uloženie, ale zbytočne zaťažuje databázový server.
- Pamäť (Redis): Najrýchlejšie riešenie, vhodné pre eshopy a dynamické weby.
Na našich serveroch je Redis pripravený a dostupný cez unix socket – to znamená, že komunikácia prebieha priamo v rámci systému, bez použitia siete. Je to rýchlejšie aj bezpečnejšie, pretože dáta sa neodosielajú mimo server.
Pri použití Redis-u sa sessions ukladajú do pamäte s automatickou expiráciou, vďaka čomu sa systém priebežne čistí a ostáva stabilný aj pri väčšej záťaži.
Upozornenie.
Redis je možné využívať iba na našich najnovších serveroch s podporou php verzií 7.4 a vyšších.
Pokiaľ teda váš hosting aktuálne beží na php nižšej ako 7.4, bude najprv potrebné web či aplikáciu zaktualizovať minimálne na túto verziu, následne môžeme na požiadanie váš hosting premigrovať na nový server.
Nakoľko však už aj verzie 7.4 -> 8.1 nedostávajú od vývojárov ani bezpečnoctné updaty - čiže sú "End of life" - odporúčame weby aktualizovať priamo na najnovšie php verzie 8.3-8.4.

