Technologijos

← Pradžia
Talpykla ir realus laikas

Redis — atmintyje veikianti talpykla svetainėms ir parduotuvėms

Redis – greičio sluoksnis už 4buildsite platformoje sukurtų svetainių, parduotuvių ir prekyviečių: atmintyje (RAM) laiko būtent tuos duomenis, kuriuos dažnai reikia pateikti – talpykloje saugomus puslapius, sesijas, krepšelius, užklausų limitus – ir atsako per mažiau nei milisekundę. Tiesos šaltinis lieka PostgreSQL; Redis jį apsaugo esant dideliam srautui. Jis įtrauktas ir valdomas platformos, be jokios tavo konfigūracijos.

Kas yra Redis ir kodėl jis toks greitas

Redis (REmote DIctionary Server) – atvirojo kodo atmintyje veikianti duomenų bazė: duomenis laiko RAM, o ne diske, todėl atsako per mažiau nei milisekundę. 4buildsite platformoje jį naudojame kaip pagreitinimo sluoksnį prieš PostgreSQL – viskam, ką dažnai reikia pateikti: puslapiams, sesijoms, krepšeliams ir užklausų limitams.

Skirtingai nei diskas, RAM yra eilėmis greitesnė, o Redis prideda natūralias duomenų struktūras (string, hash, list, set, sorted set, stream), leidžiančias sudėtingas operacijas tiesiai atmintyje, be kelionės į pagrindinę duomenų bazę ir atgal. Komandos apdorojamos vienoje gijoje (single-threaded), todėl elgesys nuspėjamas ir be race conditions.

  • Tipinė delsa mažiau nei 1 ms ir daugiau nei 100 000 operacijų per sekundę viename mazge
  • Natūralios struktūros: hash sesijoms, sorted set topams ir užklausų ribojimui, stream eilėms
  • Komandos vykdomos viena gija → nuspėjamas elgesys, be sudėtingų blokavimų

Talpykla: tavo puslapiai ir duomenys, pateikiami iš talpyklos

Strategija – cache-aside: pirmoji užklausa skaito iš PostgreSQL ir išsaugo rezultatą Redis su TTL (gyvavimo laiku); vėlesnės užklausos jį ima tiesiai iš atminties. Kai redaguoji puslapį, raktas pašalinamas aiškiai, nelaukiant, kol baigsis TTL.

Pristatomajai svetainei ar parduotuvei tai reiškia, kad produktų sąrašai, meniu, populiarūs puslapiai ir turinio fragmentai pateikiami iš talpyklos, be kreipimosi į duomenų bazę kiekvienai užklausai. Esant pikams (kampanija, Black Friday) Redis sugeria pasikartojančias užklausas, kad jų nepatirtų PostgreSQL.

  • Cache-aside su aiškiu invalidavimu redaguojant puslapį
  • Talpina puslapių fragmentus ir užklausų rezultatus, ne tik ištisus puslapius
  • Mažina PostgreSQL apkrovą srauto pikų metu

Sesijos, pirkinių krepšelis ir apsauga nuo piktnaudžiavimo

Naudotojų sesijos ir refresh tokenai laikomi Redis: greita autentifikacija, automatinis galiojimo pabaigimas per TTL ir atšaukimas visuose įrenginiuose, kai kas nors atsijungia ar pakeičia slaptažodį.

4buildsite platformoje sukurtų parduotuvių pirkinių krepšelis neprisijungusiems lankytojams laikomas Redis – greitai, su galiojimo pabaiga, be kreipimosi į pagrindinę duomenų bazę. Redis taip pat taiko užklausų ribojimą (rate limiting) kontaktų formoms ir prisijungimui, naudodamas sorted sets, kad sustabdytų šlamštą ir brute force bandymus dar prieš jiems pasiekiant duomenų bazę.

  • Sesijų saugykla su automatiniu galiojimo pabaigimu ir selektyviu tokenų atšaukimu
  • Pastovus krepšelis su TTL anoniminiams lankytojams
  • Užklausų ribojimas ir apsauga nuo piktnaudžiavimo formose ir autentifikacijoje

Realus laikas ir foninių užduočių eilės

Redis Pub/Sub ir Streams maitina realaus laiko atnaujinimus: gyvai mažėjančias atsargas, pranešimą programoje, besikeičiančią užsakymo būseną – viskas be to, kad lankytojas turėtų perkrauti puslapį, ir be pasikartojančio polling, kuris vargina serverį.

Sunkios užduotys (vaizdo apdorojimas, eksporto generavimas, sinchronizavimas) patenka į Redis eilę ir vykdomos fone worker’ių, kad lankytojas negaištų laukdamas jų pabaigos. Paskirstytojo užrakinimo (locking) mechanizmas garantuoja, kad kritinė operacija nebus vykdoma du kartus.

  • Pub/Sub ir Streams gyviems įvykiams (atsargos, užsakymai, pranešimai)
  • Užduočių eilės sunkiam apdorojimui, vykdomam asinchroniškai
  • Paskirstytasis užrakinimas operacijoms, kurios neturi būti vykdomos du kartus

Privalumai ir apribojimai

Privalumai

  • Atsakymas per mažiau nei 1 ms: talpykloje esantys duomenys pateikiami be kreipimosi į duomenų bazę
  • Smarkiai sumažina PostgreSQL apkrovą esant dideliam srautui
  • Natūralios struktūros sesijoms, krepšeliui, užklausų ribojimui ir topams
  • Pub/Sub ir Streams realaus laiko funkcijoms, be polling
  • Užduočių eilės sunkiam apdorojimui
  • Įtraukta ir valdoma platformos – jokios konfigūracijos tau

Apribojimai

  • Duomenys laikomi RAM, kuri brangesnė už diską → netinka milžiniškiems „šaltų“ duomenų kiekiams
  • Tai talpykla / pagalbinis sluoksnis, o ne tiesos šaltinis – pastovūs duomenys lieka PostgreSQL
  • Pastovumas (RDB/AOF) sumažina, bet visiškai nepašalina paskutinių sekundžių praradimo rizikos po gedimo
  • Reikalinga teisinga invalidavimo strategija, kitaip gali pateikti pasenusius duomenis

Trumpa išvada

Naudok Redis viskam, kam reikia greitos prieigos: talpyklai, sesijoms, krepšeliui, užklausų ribojimui, realiam laikui ir užduočių eilėms. Nenaudok jo kaip pagrindinės duomenų saugyklos; tam lieka PostgreSQL. 4buildsite platformoje turi abu, automatiškai suderintus: nieko rinktis ar konfigūruoti nereikia.

Specifikacijų lentelė

GalimybėDetalėKur naudojama konstruktoriuje
Delsa< 1 ms (atmintyje)Puslapiai ir duomenys pateikiami iš talpyklos
Pralaidumas> 100 000 operacijų/s mazgeDidelis srautas, mažesnė apkrova duomenų bazei
Duomenų struktūrosstring, hash, list, set, sorted set, streamSesijos, krepšelis, topai, eilės, užklausų ribojimas
PastovumasRDB momentinė kopija + AOF žurnalasAtsigavimas po perkrovimo iš kopijos ir žurnalo
Galiojimo pabaigaTTL kiekvienam raktuiKrepšelis, sesijos ir talpykla su automatiniu valymu
Realus laikasPub/Sub + StreamsGyvos atsargos, pranešimai, užsakymo būsena

Redis (talpykla) ir tik duomenų bazė

KriterijusSu RedisTik PostgreSQL
Atsako laikas pasikartojantiems duomenimsmažiau nei 1 ms, iš atmintiesdešimtys ms, užklausa kiekvieną kartą
Esant dideliam srautuiduomenų bazė mažiau apkraunamaduomenų bazė užsikemša, kyla timeout rizika
Krepšelis ir sesijosgreiti, su automatine galiojimo pabaigalentelės, kurios auga ir apkrauna duomenų bazę
Realus laikasnatūralūs Pub/Sub ir Streamspasikartojantis polling, brangus
Užduočių eilėsnatūralios, paprastos naudotiimprovizuoti sprendimai arba jų visai nėra

Dažniausiai užduodami klausimai

Kas yra Redis trumpai?

Itin greita atmintyje veikianti duomenų bazė, naudojama kaip talpyklos, sesijų ir realaus laiko sluoksnis prieš pagrindinę duomenų bazę. Atsako per mažiau nei milisekundę, o pasikartojantys duomenys pateikiami iš talpyklos.

Kodėl nenaudojate vien PostgreSQL?

PostgreSQL yra tiesos šaltinis (pastovūs duomenys), tačiau Redis pasikartojančius duomenis pateikia per mažiau nei milisekundę ir perima krepšelį, sesijas, užklausų ribojimą bei realų laiką, mažindamas duomenų bazės apkrovą esant dideliam srautui. Jie dirba kartu.

Ar prarasiu duomenis, jei Redis sugenda?

Svetainės turinio – ne: pastovūs duomenys yra PostgreSQL. Redis laikomi tik talpyklos ir laikinieji duomenys, o RDB/AOF pastovumas sumažina praradimus.

Ar Redis turiu konfigūruoti pats?

Ne. Jis įtrauktas ir valdomas 4buildsite platformos; tu naudojiesi greičiu ir realaus laiko funkcijomis nieko neadministruodamas.

Kaip Redis padeda internetinei parduotuvei?

Greitas krepšelis lankytojams, talpykloje saugomi produktų sąrašai, gyvai atnaujinamos atsargos ir apsauga nuo piktnaudžiavimo atsiskaitymo metu bei formose – viskas su mažesne duomenų bazės apkrova.

Ar Redis padeda SEO ir Core Web Vitals?

Taip, netiesiogiai: trumpi atsako laikai yra vienas iš veiksnių, lemiančių TTFB ir Core Web Vitals – signalus, svarbius „Google“ ir naudotojo patirčiai.

4b2b.net
Verslo ekosistema
4conta.ro
Buhalterinė apskaita
4invoices.net
Sąskaitų išrašymo programa
4expenses.net
Išlaidų valdymas
4notify.net
Pranešimai
4hosting.net
Svetainių talpinimas
4database.net
Duomenų bazės
4buildsite.net
Svetainių kūrimas
4myapp.net
Programėlių kūrimas
4avatars.net
DI avatarai
4chaty.net
DI pokalbių robotas
4webagency.net
Programa interneto agentūroms
4softedu.net
Svetainės švietimui
4softcrm.net
CRM platforma
4softerp.net
ERP sistema
4softhr.net
Personalo valdymas
4mystaff.net
Darbuotojų portalas
4myprojects.net
Projektų valdymas
4mycontracts.net
Sutartys
4docs.net
Dokumentų valdymas
4appointments.net
Vizitų registracija
4marketingonline.net
Rinkodara
4insurance.net
Draudimas
4property.net
Nekilnojamasis turtas
4lawyers.net
Programa advokatams
4mygarage.net
Autoservisas
4driving.net
Vairavimo mokyklos
4fleet.net
Autoparko valdymas
4myevents.net
Renginiai
4therapy.net
Terapija
4clinics.net
Klinikos
4dental.net
Odontologijos klinikos
4restaurants.net
Restoranai
4beautify.net
Grožio salonas
4gym.net
Sporto klubai
4guards.net
Apsaugos įmonės
4softvet.net
Veterinarijos klinikos
4softauto.net
Programinė įranga automobilių verslui
4construct.net
Statybos įmonės
4marketplace.net
Prekyvietė
4shopy.net
El. parduotuvė
4pricing.net
Kainų palyginimas
4salefood.net
Maisto pristatymas
4rentify.net
Nuoma
4transports.net
Transportas
4agencytravel.net
Kelionių agentūra
4hotel.net
Viešbučių valdymas
4ong.net
NVO valdymas