Redis®*: Gebruik met Ruby

Hoe Redis verbinden met Ruby

👋 Welkom bij de Stackhero-documentatie!

Stackhero biedt een kant-en-klare Redis cloud oplossing met tal van voordelen, waaronder:

  • Redis Commander webinterface inbegrepen.
  • Onbeperkte berichtgrootte en overdrachten.
  • Updates eenvoudig met één klik.
  • Optimale prestaties en sterke beveiliging dankzij een privé, dedicated infrastructuur.

Bespaar tijd en maak uw leven eenvoudiger: het kost slechts 5 minuten om de Redis cloud hosting oplossing van Stackhero uit te proberen!

Redis, wat staat voor Remote Dictionary Server, is een open-source, in-memory database die uitmuntende prestaties en flexibiliteit biedt.

Redis wordt vaak aangeduid als een NoSQL-database en ondersteunt een breed scala aan datastructuren zoals strings, hashes, lijsten, sets en gesorteerde sets, onder andere. Dankzij de hoge snelheid van bewerkingen en het vermogen om grote hoeveelheden data te verwerken, is Redis een populaire keuze geworden voor caching, real-time analytics, messaging en diverse andere toepassingen.

Redis kan naadloos worden geïntegreerd met Ruby en Ruby on Rails om de prestaties, schaalbaarheid en flexibiliteit te verbeteren. Door gebruik te maken van Redis kunnen Ruby-ontwikkelaars verschillende functionaliteiten implementeren, zoals caching, sessiebeheer, real-time dataverwerking en het verwerken van achtergrondtaken.

Hieronder vindt u enkele veelvoorkomende manieren waarop Redis wordt gebruikt met Ruby en Ruby on Rails:

  1. Caching: Redis kan als caching store worden ingezet in Rails-applicaties om de responstijden te versnellen en de belasting op de database te verminderen.
  2. Achtergrondtaakverwerking: Redis fungeert als backend voor populaire libraries voor achtergrondtaakverwerking zoals Sidekiq en Resque, wat de prestaties en betrouwbaarheid van achtergrondtaken in Rails-applicaties verbetert.
  3. Real-time functionaliteiten: Dankzij de Pub/Sub-functionaliteit van Redis kunnen Rails-applicaties real-time features implementeren, zoals notificaties, chatsystemen en real-time analytics, door snelle en efficiënte berichtuitwisseling tussen verschillende applicatiecomponenten mogelijk te maken.

Stackhero biedt een kant-en-klare Ruby cloud oplossing die tal van voordelen biedt, waaronder:

  • Deploy uw applicatie binnen enkele seconden met een eenvoudige git push.
  • Gebruik uw eigen domeinnaam en profiteer van de automatische configuratie van HTTPS-certificaten voor extra beveiliging.
  • Geniet van gemoedsrust met automatische back-ups, one-click updates en een eenvoudige, transparante en voorspelbare prijsstelling.
  • Optimale performance en sterke beveiliging dankzij een private, dedicated infrastructuur.

Bespaar tijd en maak uw leven eenvoudiger: het duurt slechts 5 minuten om de Ruby cloud hosting oplossing van Stackhero uit te proberen.

Om te beginnen kunt u de "redis" gem installeren:

bundle add redis

Vervolgens kunt u het bestand config/environments/production.rb bewerken en deze regel toevoegen:

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

Definieer ten slotte de omgevingsvariabele REDIS_URL. U kunt deze URL gebruiken en <yourPassword> en <XXXXXX> vervangen door uw eigen gegevens:

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

Voor meer informatie over het configureren van Redis als cachesysteem voor Ruby on Rails, raadpleeg de officiële Rails-documentatie hier.

Sidekiq gebruikt automatisch de Redis-server die is gedefinieerd in de omgevingsvariabele REDIS_URL.

U kunt de omgevingsvariabele REDIS_URL als volgt instellen, waarbij u <password> en <XXXXXX> vervangt door uw gegevens:

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

Standaard is Sidekiq zo geconfigureerd dat er geen tolerantie is bij netwerkstoringen. Om dit te verbeteren, adviseren wij om de Sidekiq-clientconfiguratie in config/initializers/sidekiq.rb aan te passen voor meer stabiliteit:

# Bestand config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # Stel de timeout in op 5 seconden
    pool_timeout: 5, # Stel de timeout in op 5 seconden
    reconnect_attempts: Array.new(240, 0.5) # Probeer 240 keer opnieuw te verbinden, elke 0,5 seconde (totaal 120 seconden/2 minuten) voordat er een foutmelding wordt gegeven
  }
end

Deze configuratie zorgt ervoor dat als uw Redis-server niet beschikbaar is, de client gedurende 2 minuten pogingen zal doen om opnieuw te verbinden voordat er een fout wordt gemeld. Dit geeft de Redis-server bijvoorbeeld de tijd om opnieuw op te starten. Afhankelijk van het gebruik van uw Sidekiq kunt u deze instelling aanpassen aan uw specifieke behoeften.

Voor meer informatie over Sidekiq en Redis kunt u de officiële documentatie hier raadplegen.

Resque gebruikt automatisch de Redis-server die is gedefinieerd in de omgevingsvariabele REDIS_URL.

U kunt de omgevingsvariabele REDIS_URL als volgt instellen, waarbij u <yourPassword> en <XXXXXX> vervangt door uw gegevens:

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

Voor meer informatie over Resque en Redis kunt u de officiële documentatie hier raadplegen.