Valkey: Utilizzo con Ruby

Come collegare Valkey con Ruby

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione Valkey 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 Valkey cloud hosting di Stackhero!

Valkey è un database in-memory open source progettato per offrire prestazioni eccezionali e grande flessibilità. Nato come fork di Redis dopo il passaggio di quest’ultimo a una licenza più restrittiva, Valkey rappresenta un’alternativa completamente open source. Garantisce piena compatibilità con le librerie Redis, risultando così una soluzione ideale per sostituire Redis nei progetti che già lo utilizzavano.

Spesso classificato come database NoSQL, Valkey 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 volumi di dati, Valkey è molto apprezzato per casi d’uso come caching, analytics in tempo reale, messaggistica e molto altro.

Valkey si integra facilmente con Ruby e Ruby on Rails, migliorando prestazioni, scalabilità e flessibilità. Gli sviluppatori Ruby possono sfruttare Valkey per implementare 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 Valkey con Ruby e Ruby on Rails:

  1. Caching: Valkey può essere utilizzato come layer di cache nelle applicazioni Rails, accelerando i tempi di risposta e riducendo il carico sul database.

  2. Elaborazione di job in background: Valkey può essere utilizzato come backend per librerie di job processing molto diffuse come Sidekiq e Resque, migliorando le prestazioni e l’affidabilità delle attività in background nelle applicazioni Rails.

  3. Funzionalità real-time: La funzionalità Pub/Sub di Valkey consente alle applicazioni Rails di offrire funzionalità in tempo reale come notifiche, sistemi di chat e analytics real-time, facilitando uno scambio di messaggi rapido ed efficiente tra i 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 massima 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 configurare Valkey come sistema di cache in Ruby on Rails, segui questi passaggi:

  1. Installa la gemma redis:
bundle add redis
  1. Modifica il file config/environments/production.rb e aggiungi la seguente configurazione:
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
  1. Definisci la variabile d’ambiente VALKEY_URL. Utilizza un URL nel seguente formato, sostituendo <yourPassword> e <XXXXXX> con le tue credenziali:
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

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

Sidekiq utilizzerà automaticamente il server Valkey definito dalla variabile d’ambiente REDIS_URL.

Puoi impostare la variabile d’ambiente REDIS_URL in questo modo, semplicemente 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 la stabilità, si consiglia di modificare la configurazione del client Sidekiq in config/initializers/sidekiq.rb come segue:

# 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 Valkey dovesse diventare non disponibile, il client tenterà di riconnettersi per 2 minuti prima di restituire un errore. Questo consente, ad esempio, di attendere il riavvio del server Valkey. In base all’utilizzo di Sidekiq nella tua applicazione, puoi adattare questa impostazione alle tue esigenze specifiche.

Per ulteriori informazioni su Sidekiq e Valkey, puoi consultare la documentazione ufficiale qui.

Per utilizzare Valkey con Resque, imposta la variabile d’ambiente REDIS_URL come segue, sostituendo <yourPassword> e <XXXXXX> con le tue credenziali:

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

Resque utilizzerà automaticamente il server Valkey specificato nella variabile d’ambiente REDIS_URL.

Per maggiori informazioni sull’utilizzo di Resque con Valkey, puoi consultare la documentazione Resque qui.