Redis®*: Utilizzo con Ruby

Come connettere Redis con Ruby

👋 Benvenuti nella documentazione di Stackhero!

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

  • Interfaccia web Redis Commander inclusa.
  • Dimensione e trasferimenti di messaggi illimitati.
  • Aggiornamenti senza sforzo con un solo clic.
  • Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.

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

Redis, che sta per Remote Dictionary Server, è un database open-source in memoria che offre prestazioni e flessibilità eccezionali.

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

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

Ecco alcuni modi comuni in cui Redis viene utilizzato con Ruby e Ruby on Rails:

  1. Caching: Redis può essere utilizzato come store di cache nelle applicazioni Rails per accelerare i tempi di risposta e ridurre il carico sul database.
  2. Elaborazione dei lavori in background: Redis serve come backend per librerie popolari di elaborazione dei lavori in background come Sidekiq e Resque, migliorando le prestazioni e l'affidabilità dei compiti 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 analisi in tempo reale facilitando il passaggio rapido ed efficiente dei messaggi tra diversi componenti dell'applicazione.

Stackhero offre una soluzione Ruby cloud pronta all'uso che fornisce una serie di vantaggi, tra cui:

  • Distribuisci la tua applicazione in pochi secondi con un semplice git push.
  • Usa il tuo nome di dominio e beneficia della configurazione automatica dei certificati HTTPS per una sicurezza migliorata.
  • Goditi la tranquillità con backup automatici, aggiornamenti con un clic e prezzi semplici, trasparenti e prevedibili.
  • Ottieni prestazioni ottimali e una sicurezza robusta grazie a una VM privata e dedicata.

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

Per iniziare, potresti voler installare la gem "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 usare questo URL e semplicemente sostituire <yourPassword> e <XXXXXX> con le tue informazioni:

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

Per ulteriori 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 le tue informazioni:

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

Di default, Sidekiq è configurato in modo da non tollerare disturbi di rete. Per migliorare questo, suggeriamo 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) # Prova a riconnettersi 240 volte, ogni 0.5 secondi (120 secondi/2 minuti in totale) prima di generare un errore
  }
end

Questa configurazione assicura che se il tuo server Redis diventa non disponibile, il client tenterà di riprovare per una durata di 2 minuti prima di segnalare un errore. Questo dà al server Redis il tempo di riavviarsi, per esempio. A seconda dell'uso di Sidekiq, puoi regolare questa impostazione per adattarla meglio alle tue esigenze specifiche.

Per ulteriori 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 le tue informazioni:

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

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