Redis®*: Naudojimas su Ruby

Kaip prijungti Redis prie Ruby

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti Redis cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Įtraukta Redis Commander žiniatinklio sąsaja.
  • Neribotas žinučių dydis ir perdavimas.
  • Paprasti atnaujinimai vienu paspaudimu.
  • Optimali veikla ir stipri apsauga dėl privačios, dedikuotos infrastruktūros.

Taupykite laiką ir palengvinkite sau darbą: išbandyti Stackhero Redis cloud hosting sprendimą užtrunka tik 5 minutes!

Redis (Remote Dictionary Server) yra atviro kodo, atmintyje veikianti duomenų bazė, pasižyminti išskirtiniu našumu ir lankstumu.

Dažnai vadinama NoSQL duomenų baze, Redis palaiko daugybę duomenų struktūrų, tokių kaip eilutės (strings), maišos (hashes), sąrašai (lists), rinkiniai (sets) ir surūšiuoti rinkiniai (sorted sets) bei kitos. Dėl itin greitų operacijų ir gebėjimo apdoroti didelius duomenų kiekius, Redis tapo populiariu pasirinkimu spartinimui (caching), realaus laiko analitikai, žinučių perdavimui (messaging) ir įvairiems kitiems scenarijams.

Redis galima lengvai integruoti su Ruby ir Ruby on Rails, siekiant pagerinti našumą, mastelį ir lankstumą. Naudodami Redis, Ruby programuotojai gali įgyvendinti įvairias funkcijas, tokias kaip spartinimas (caching), sesijų valdymas, realaus laiko duomenų apdorojimas ir foninių užduočių vykdymas.

Štai keletas dažniausių Redis naudojimo būdų su Ruby ir Ruby on Rails:

  1. Spartinimas (Caching): Redis gali būti naudojamas kaip spartinimo saugykla (cache store) Rails aplikacijose, siekiant pagreitinti atsako laiką ir sumažinti apkrovą duomenų bazei.
  2. Foninių užduočių vykdymas: Redis veikia kaip pagrindas (backend) populiarioms foninių užduočių bibliotekoms, tokioms kaip Sidekiq ir Resque, pagerindamas foninių užduočių našumą ir patikimumą Rails aplikacijose.
  3. Realaus laiko funkcijos: Redis Pub/Sub funkcionalumas leidžia Rails aplikacijoms įgyvendinti realaus laiko funkcijas, tokias kaip pranešimai, pokalbių sistemos ar realaus laiko analitika, užtikrinant greitą ir efektyvų žinučių perdavimą tarp skirtingų aplikacijos komponentų.

Stackhero siūlo paruoštą naudoti Ruby cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Diekite savo aplikaciją per kelias sekundes naudodami paprastą git push.
  • Naudokite savo domeno vardą ir naudokitės automatiniu HTTPS sertifikatų konfigūravimu didesniam saugumui.
  • Būkite ramūs dėl automatinių atsarginių kopijų, atnaujinimų vienu paspaudimu ir aiškios, skaidrios bei prognozuojamos kainodaros.
  • Pasiekite optimalią spartą ir tvirtą saugumą dėl privačios, dedikuotos infrastruktūros.

Taupykite laiką ir supaprastinkite savo darbą: išbandyti Stackhero Ruby cloud hosting sprendimą užtrunka tik 5 minutes.

Norėdami pradėti, įdiekite "redis" gem:

bundle add redis

Tada redaguokite config/environments/production.rb failą ir pridėkite šią eilutę:

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

Galiausiai, apibrėžkite aplinkos kintamąjį REDIS_URL. Galite naudoti šį URL, tik pakeiskite <yourPassword> ir <XXXXXX> savo duomenimis:

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

Daugiau informacijos apie Redis konfigūravimą kaip spartinimo sistemą Ruby on Rails rasite oficialioje Rails dokumentacijoje čia.

Sidekiq automatiškai naudos Redis serverį, nurodytą aplinkos kintamajame REDIS_URL.

Aplinkos kintamąjį REDIS_URL galite nustatyti taip, pakeisdami <password> ir <XXXXXX> savo duomenimis:

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

Pagal numatytąją konfigūraciją, Sidekiq nėra pritaikytas tinklo trikdžiams. Norėdami pagerinti stabilumą, rekomenduojame pakeisti Sidekiq kliento konfigūraciją faile config/initializers/sidekiq.rb:

# Failas config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # Nustato timeout'ą 5 sekundėms
    pool_timeout: 5, # Nustato timeout'ą 5 sekundėms
    reconnect_attempts: Array.new(240, 0.5) # Bando prisijungti iš naujo 240 kartų kas 0,5 sekundės (iš viso 120 sekundžių/2 minutės) prieš iškeliant klaidą
  }
end

Ši konfigūracija užtikrina, kad jei Redis serveris taptų nepasiekiamas, klientas bandys prisijungti iš naujo 2 minutes prieš pranešdamas apie klaidą. Tai suteikia Redis serveriui laiko, pavyzdžiui, persikrauti. Priklausomai nuo jūsų Sidekiq naudojimo, galite šį nustatymą pritaikyti pagal savo poreikius.

Daugiau informacijos apie Sidekiq ir Redis rasite oficialioje dokumentacijoje čia.

Resque automatiškai naudos Redis serverį, nurodytą aplinkos kintamajame REDIS_URL.

Aplinkos kintamąjį REDIS_URL galite nustatyti taip, pakeisdami <yourPassword> ir <XXXXXX> savo duomenimis:

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

Daugiau informacijos apie Resque ir Redis rasite oficialioje dokumentacijoje čia.