Redis®*: Utilizzo con Ruby

Come collegare Redis con Ruby

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione Redis cloud pronta all'uso che garantisce numerosi vantaggi, tra cui:

  • Interfaccia web Redis Commander inclusa.
  • Dimensione e trasferimento dei messaggi illimitati.
  • Aggiornamenti semplici con un solo clic.
  • Prestazioni ottimali e sicurezza avanzata grazie a un'infrastruttura privata e dedicata.

Risparmia tempo e semplificati la vita: bastano 5 minuti per provare la soluzione di hosting Redis cloud di Stackhero!

Redis, acronimo di Remote Dictionary Server, è un database open-source in-memory che offre prestazioni e flessibilità eccezionali.

Spesso definito come database NoSQL, Redis supporta una vasta gamma di strutture dati come stringhe, hash, liste, set e sorted set, tra le altre. Grazie alle sue operazioni ad alta velocità e alla capacità di gestire grandi quantità di dati, Redis è diventato una scelta popolare per il caching, l'analisi in tempo reale, la messaggistica e molti altri casi d'uso.

Redis può essere integrato senza difficoltà con Ruby e Ruby on Rails per migliorare prestazioni, scalabilità e flessibilità. Sfruttando Redis, gli sviluppatori Ruby possono implementare diverse funzionalità come caching, gestione delle sessioni, elaborazione dati in tempo reale e gestione dei job in background, tra le altre.

Ecco alcuni degli utilizzi più comuni di Redis con Ruby e Ruby on Rails:

  1. Caching: Redis può essere utilizzato come sistema di cache nelle applicazioni Rails per accelerare i tempi di risposta e ridurre il carico sul database.
  2. Elaborazione dei job in background: Redis funge da backend per librerie popolari di job processing come Sidekiq e Resque, migliorando le prestazioni e l'affidabilità delle attività in background nelle applicazioni Rails.
  3. Funzionalità in tempo reale: La funzionalità Pub/Sub di Redis consente alle applicazioni Rails di implementare funzionalità in tempo reale come notifiche, sistemi di chat e analytics in tempo reale, facilitando uno scambio di messaggi rapido ed efficiente tra i diversi componenti dell'applicazione.

Stackhero offre una soluzione Ruby cloud pronta all'uso che garantisce numerosi vantaggi, tra cui:

  • Distribuisci la tua applicazione in pochi secondi con un semplice git push.
  • Utilizza il tuo nome di dominio e beneficia della configurazione automatica dei certificati HTTPS per una maggiore sicurezza.
  • Goditi la tranquillità grazie a backup automatici, aggiornamenti con un clic e una tariffazione semplice, trasparente e prevedibile.
  • Ottieni prestazioni ottimali e sicurezza avanzata grazie a un'infrastruttura privata e dedicata.

Risparmia tempo e semplificati la vita: bastano 5 minuti per provare la soluzione di hosting Ruby cloud di Stackhero.

Per iniziare, è consigliabile installare la gemma "redis":

bundle add redis

Successivamente, puoi modificare il file config/environments/production.rb e aggiungere questa riga:

config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }

Infine, definisci la variabile d'ambiente REDIS_URL. Puoi utilizzare questo URL, sostituendo semplicemente <yourPassword> e <XXXXXX> con i tuoi dati:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Per maggiori informazioni sulla configurazione di Redis come sistema di cache per Ruby on Rails, puoi consultare la documentazione ufficiale di Rails qui.

Sidekiq utilizzerà automaticamente il server Redis definito nella variabile d'ambiente REDIS_URL.

Puoi impostare la variabile d'ambiente REDIS_URL in questo modo, sostituendo <password> e <XXXXXX> con i tuoi dati:

REDIS_URL="rediss://default:<password>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Di default, la configurazione di Sidekiq non prevede alcuna tolleranza in caso di disturbi di rete. Per migliorare questo aspetto, si consiglia di modificare la configurazione del client Sidekiq in config/initializers/sidekiq.rb per aumentare la stabilità:

# File config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # Imposta il timeout a 5 secondi
    pool_timeout: 5, # Imposta il timeout a 5 secondi
    reconnect_attempts: Array.new(240, 0.5) # Tenta di riconnettersi 240 volte, ogni 0,5 secondi (120 secondi/2 minuti in totale) prima di generare un errore
  }
end

Questa configurazione garantisce che, se il server Redis dovesse diventare non disponibile, il client tenterà di riconnettersi per 2 minuti prima di segnalare un errore. Questo consente, ad esempio, al server Redis di riavviarsi. In base all'utilizzo di Sidekiq, puoi adattare questa impostazione alle tue esigenze specifiche.

Per maggiori informazioni su Sidekiq e Redis, puoi consultare la documentazione ufficiale qui.

Resque utilizzerà automaticamente il server Redis definito nella variabile d'ambiente REDIS_URL.

Puoi impostare la variabile d'ambiente REDIS_URL in questo modo, sostituendo <yourPassword> e <XXXXXX> con i tuoi dati:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Per maggiori informazioni su Resque e Redis, puoi consultare la documentazione ufficiale qui.