Redis je zmogljivo orodje za shranjevanje podatkov v pomnilniku, ki drastično pohitri vašo Magento trgovino s preusmeritvijo sej (sessions) in predpomnilnika (cache) iz počasnejše zbirke podatkov ali datotečnega sistema v hiter RAM.
V tem zapisu bomo pogledali, kako najti podatke o vašem Redis strežniku in kako jih pravilno vključiti v Magento.
1. Kako omogočiti Redis v cPanel okolju (shared hosting)
Na deljenih strežnikih Redis praviloma ne deluje prek klasičnega TCP porta 6379, temveč prek Unix socketa, ki ga omogoči ponudnik gostovanja. Preden Redis povežeš z Magento, moraš preveriti, ali je PHP podpora za Redis sploh aktivna.
Aktivacija Redis razširitve v cPanelu
V večini cPanel okolij (zlasti na CloudLinux strežnikih) Redis omogočiš prek PHP selektorja:
- Prijaviš se v cPanel
- Odpreš Select PHP Version (včasih poimenovano tudi PHP Selector)
- Preklopiš na zavihek Extensions
- Označiš razširitev redis
- Shraniš spremembe
S tem aktiviraš PHP razširitev phpredis, ki omogoča, da se Magento sploh lahko poveže z Redis strežnikom.

Če ta razširitev ni omogočena, bo Magento pri poskusu uporabe Redis backend-a javil napako povezave ali pa se cache sploh ne bo inicializiral.
Opomba:
Če uporabljate NEOSERV Turbo LiteSpeed paket, je Redis v cPanelu na voljo brez doplačila (prek Unix socketa). Aktivirate ga lahko neposredno v nastavitvah gostovanja.
2. Kako najti podatke za Redis?
Preden začnete s konfiguracijo, morate vedeti, kje Redis teče. Običajno teče na določenih vratih (port 6379) ali preko Unix vtičnice (socket), kar je pogosto na deljenih gostovanjih.
Iskanje procesa preko konzole
Najlažji način, da najdete te podatke, je z uporabo ukaza ps:
ps aux | grep redis
V izpisu iščite nekaj podobnega temu:
redis-server *:6379(pomeni, da teče na portu 6379)redis-server unixsocket:/home/uporabnik/.tmp/redis.sock(pomeni, da uporablja Unix socket)
Preverjanje povezave
Ko imate podatke, lahko preverite, če se lahko povežete:
Za port:
redis-cli -p 6379 ping
Za Unix socket:
redis-cli -s /pot/do/redis.sock ping
Če dobite odgovor PONG, vse deluje!
3. Popolna konfiguracija za app/etc/env.php
Spodaj je celotna koda, ki jo vstavite v svojo datoteko.
A. Konfiguracija sej (Sessions)
Seje so kritične, saj se osvežujejo ob vsakem kliku uporabnika.
'session' => [
'save' => 'redis',
'redis' => [
'host' => '/home/imeracuna/.cagefs/tmp/redis.sock', // Pot do socketa ali IP
'port' => '0', // 0 za socket, 6379 za port
'password' => '', // Geslo, če je nastavljeno
'timeout' => '2.5', // Čas čakanja na povezavo (sekunde)
'persistent_identifier' => '', // ID za trajno povezavo
'database' => '2', // Številka baze (priporočamo 2)
'compression_threshold' => '2048', // Stisni podatke nad 2KB
'compression_library' => 'gzip', // Knjižnica za stiskanje (gzip ali lzf)
'log_level' => '1', // 1 za napake, 4 za vse
'max_concurrency' => '6', // Max št. hkratnih procesov na sejo
'break_after_frontend' => '5', // Čas za sprostitev zaklepa (sekunde)
'break_after_adminhtml' => '30', // Čas za admin zaklep
'first_lifetime' => '600', // Čas trajanja nove seje
'bot_first_lifetime' => '60', // Čas za robote
'bot_lifetime' => '7200', // Skupni čas za robote
'disable_locking' => '0', // 0 omogoči zaklepanje (varneje)
'min_lifetime' => '60', // Minimalni čas seje
'max_lifetime' => '2592000', // Maksimalni čas (30 dni)
'sentinel_master' => '', // Za Redis Sentinel gruče
'sentinel_servers' => '',
'sentinel_connect_retries' => '5',
'sentinel_verify_master' => '0'
]
],
Razlaga ključnih polj:
- database: Redis omogoča več ločenih baz (običajno 0-15). Za seje uporabimo bazo 2, da se ne mešajo s predpomnilnikom.
- compression_threshold: Magento bo stisnil podatke, preden jih pošlje v Redis, če so večji od te vrednosti. To varčuje s spominom.
- max_concurrency: Preprečuje, da bi en uporabnik zasedel preveč virov (npr. če odpre 10 zavihkov hkrati).
- disable_locking: Vedno nastavljeno na
0v produkciji, da preprečite korupcijo podatkov seje.
B. Konfiguracija predpomnilnika (Cache)
To pokriva privzeti predpomnilnik (Default) in predpomnilnik celotnih strani (Page Cache).
'cache' => [
'frontend' => [
'default' => [
'id_prefix' => '2e4_',
'backend' => 'Magento\Framework\Cache\Backend\Redis',
'backend_options' => [
'server' => '/home/imeracuna/.cagefs/tmp/redis.sock',
'port' => '0',
'password' => '',
'database' => '0', // Baza 0 za privzeti cache
'compress_data' => '1', // Omogoči stiskanje
'compression_lib' => 'gzip'
]
],
'page_cache' => [
'id_prefix' => '2e4_',
'backend' => 'Magento\Framework\Cache\Backend\Redis',
'backend_options' => [
'server' => '/home/imeracuna/.cagefs/tmp/redis.sock',
'port' => '0',
'password' => '',
'database' => '1', // Baza 1 za FPC
'compress_data' => '0', // FPC običajno ne stiskamo za max hitrost
'compression_lib' => 'gzip'
]
]
]
],
Razlaga ključnih polj:
- id_prefix: Kratka koda (npr.
2e4_), ki se doda vsakemu ključu. To je nujno, če imate na istem Redis strežniku več trgovin. - backend: Pove Magentu, da uporabi Redis gonilnik.
- database: Baza 0 je za splošne Magento podatke, baza 1 pa za Full Page Cache (FPC).
- compress_data: Pri FPC se pogosto nastavi na
0, ker so podatki že v HTML obliki in je hitreje, če jih Redis vrne neposredno brez odpakiranja.
3. Zaključek
Po urejanju datoteke obvezno počistite predpomnilnik:
php bin/magento cache:flush
Z Redisom bo vaša trgovina dihala lažje, procesor pa bo manj obremenjen z MySQL poizvedbami za seje!
