Num. Verde 800 11 28 25

Magento ancora più veloce con Redis

Indice dei contenuti

magento e redis

Oggi vedremo insieme una miglioria alla configurazione che vi abbiamo proposto nel precedente articolo su Magento, sostituendo a Memcache il server Redis.

 

Redis è un server chiave/valore residente in memoria a persistenza facoltativa e se integrato in Magento offre i seguenti vantaggi:

  • E’ persistente, quindi il suo riavvio non elimina completamente la cache;
  • Supporta la tecnologia master/slave, si può quindi configurare in modo semplice per eliminare il single point of failure;
  • E’ stato progettato con molta attenzione ai meccanismi di eliminazione della cache; questo permette un uso ottimale della memoria;
  • Le tags sono completamente supportate senza la necessità di ricorrere alla cache a due livelli;
  • Supporta più database, ognuno dei quali può essere utilizzato per una funzionalità.

Il supporto a Redis è disponibile da Magento 1.8 in poi, per utilizzarlo su versioni più vecchie sono necessari moduli di terze parti.

Passiamo adesso all’ installazione. Per installare redis e il supporto PHP su un server Debian/Ubuntu basta eseguire i seguenti comandi:

apt-get update && apt-get install redis-server php5-redis

Trovate il file di configurazione di Redis in /etc/redis/redis.conf, consigliamo di impostare delle credenziali di autenticazione o far bindare il server solo su localhost; Redis di default abilita un meccanismo di salvataggio dei dati su disco.

Consigliamo di limitare l’uso della ram, in base a quella disponibile, impostando la seguente direttiva: (in questo esempio il limite è a 2GB)

maxmemory 2GB
maxmemory-policy allkeys-lru

Per configurare Redis su Magento si deve innanzitutto abilitare il relativo modulo, nel file app/etc/modules/Cm_RedisSession.xml impostare il valore di <active> a true, il file risulterà essere cosi trutturato:

<config>
  <modules>
    <Cm_RedisSession>
      <active>true</active>
      <codePool>community</codePool>
    </Cm_RedisSession>
  </modules>
</config>

A questo punto se vogliamo storare le sessioni dobbiamo inserire nel file di configurazione app/etc/local.xml il seguente contenuto:

        <session_save>db</session_save>
        <redis_session>
            <host>127.0.0.1</host>
            <port>6379</port>
            <password></password>
            <timeout>2.5</timeout>
            <persistent></persistent>
            <db>0</db>                        
            <compression_threshold>2048</compression_threshold>  
            <compression_lib>gzip</compression_lib>              
            <log_level>1</log_level>              
            <max_concurrency>10</max_concurrency>                
            <break_after_frontend>5</break_after_frontend>       
            <bot_lifetime>7200</bot_lifetime>                
        </redis_session>

Per abilitare la cache su Redis, sempre nel file app/etc/local.xml

        <cache>
                <backend>Cm_Cache_Backend_Redis</backend>
                <backend_options>
                <server>127.0.0.1</server> 
                <port>6379</port>
                <persistent></persistent> 
                <database>1</database>
                <password></password> 
                <force_standalone>0</force_standalone>  
                <connect_retries>1</connect_retries> 
                <read_timeout>10</read_timeout>         
                <automatic_cleaning_factor>0</automatic_cleaning_factor> 
                <compress_data>1</compress_data>  
                <compress_tags>1</compress_tags> 
                <compress_threshold>20480</compress_threshold>  
                <compression_lib>gzip</compression_lib> 
                <use_lua>0</use_lua> 
                </backend_options>
        </cache>

Nella versione Magento Enterprise è possibile utilizzare Redis come backend della FPC, con ottimi risultati.

Una volta configurato Redis non ci resta che svuotare completamente la cache di Magento cancellando la cartella var/cache o direttamente da Magento con il comando:

Per verificare che Redis stia funzionando correttamente possiamo connetterci al database eseguendo il comando:

redis-cli

Una volta connessi alla console di Redis verifichiamo che i dati siano effettivamente storati con i comandi:

keys sess* (se sono presenti chiavi le sessioni sono correttamente storate)
keys * (se sono presenti chiavi la cache è correttamente storata)

Dai nostri test l’utilizzo di Redis porta ad un incremento delle performance, se avete la possibilità di installare Redis e avete sufficienti risorse sul vostro server consigliamo di utilizzare questa configurazione.

CONDIVIDI SUI SOCIAL

Condividi su linkedin
Condividi su twitter
Condividi su facebook
Condividi su whatsapp
Condividi su email

Altri articoli da non perdere

2 risposte

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

− 3 = 3