Redis®*: Gebruik met Ruby

Hoe Redis met Ruby te verbinden

👋 Welkom bij de Stackhero-documentatie!

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

  • Redis Commander web UI inbegrepen.
  • Onbeperkte berichtgrootte en overdrachten.
  • Moeiteloze updates met slechts één klik.
  • Optimale prestaties en robuuste beveiliging aangedreven door een privé en dedicated VM.

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

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

Vaak aangeduid als een NoSQL-database, ondersteunt Redis een breed scala aan datastructuren zoals strings, hashes, lijsten, sets en gesorteerde sets, onder andere. Met zijn snelle operaties en 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 prestaties, schaalbaarheid en flexibiliteit te verbeteren. Door gebruik te maken van Redis kunnen Ruby-ontwikkelaars verschillende functies implementeren zoals caching, sessiebeheer, real-time dataverwerking en achtergrondtaakverwerking, onder andere.

Hier zijn enkele veelvoorkomende manieren waarop Redis wordt gebruikt met Ruby en Ruby on Rails:

  1. Caching: Redis kan worden gebruikt als een caching-opslag in Rails-applicaties om responstijden te versnellen en de belasting op de database te verminderen.
  2. Achtergrondtaakverwerking: Redis dient als backend voor populaire achtergrondtaakverwerkingsbibliotheken zoals Sidekiq en Resque, waardoor de prestaties en betrouwbaarheid van achtergrondtaken in Rails-applicaties worden verbeterd.
  3. Real-time functies: De Pub/Sub-functionaliteit van Redis stelt Rails-applicaties in staat om real-time functies te implementeren zoals meldingen, chatsystemen en real-time analytics door snelle en efficiënte berichtoverdracht tussen verschillende applicatiecomponenten te faciliteren.

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

  • Implementeer uw applicatie binnen enkele seconden met een eenvoudige git push.
  • Gebruik uw eigen domeinnaam en profiteer van de automatische configuratie van HTTPS-certificaten voor verbeterde beveiliging.
  • Geniet van gemoedsrust met automatische back-ups, one-click updates, en eenvoudige, transparante en voorspelbare prijzen.
  • Krijg optimale prestaties en robuuste beveiliging dankzij een privé en dedicated VM.

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

Om te beginnen, wilt u misschien 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"] }

Ten slotte, definieer de omgevingsvariabele REDIS_URL. U kunt deze URL gebruiken en gewoon <yourPassword> en <XXXXXX> vervangen door uw informatie:

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, kunt u de officiële Rails-documentatie hier raadplegen.

Sidekiq zal automatisch de Redis-server gebruiken 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 informatie:

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

Standaard is Sidekiq zo geconfigureerd dat het geen tolerantie heeft tijdens netwerkstoringen. Om dit te verbeteren, raden we aan de Sidekiq-clientconfiguratie in config/initializers/sidekiq.rb aan te passen om de stabiliteit te verbeteren:

# 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 (120 seconden/2 minuten in totaal) voordat een fout wordt gemeld
  }
end

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

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

Resque zal automatisch de Redis-server gebruiken 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 informatie:

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.