Tehnoloogiad

← Avaleht
Vahemälu ja reaalaeg

Redis — mälusisene vahemälu saitidele ja e-poodidele

Redis on 4buildsite'is ehitatud saitide, e-poodide ja turuplatsside taga olev kiirusekiht: hoiab mälus (RAM) täpselt neid andmeid, mida tuleb koheselt serveerida — vahemällu salvestatud lehed, sessioonid, ostukorvid, kiiruspiirangud — ja vastab alla millisekundi. Tõeallikaks jääb PostgreSQL; Redis kaitseb seda suure liikluse korral. See on platvormi poolt kaasa arvatud ja hallatud, sinu poolt ilma igasuguse seadistuseta.

Mis on Redis ja miks see on nii kiire

Redis (REmote DIctionary Server) on avatud lähtekoodiga mälusisene andmebaas: hoiab andmeid RAM-is, mitte kettal, seega vastab alla millisekundi. 4buildsite'is kasutame seda kiirenduskihina PostgreSQL-i ees — kõige jaoks, mida tuleb koheselt serveerida: lehed, sessioonid, ostukorvid ja kiiruspiirangud.

Erinevalt kettast on RAM suurusjärkude võrra kiirem ning Redis lisab natiivsed andmestruktuurid (string, hash, list, set, sorted set, stream), mis võimaldavad keerukaid operatsioone otse mälus, ilma edasi-tagasi teekonnata põhiandmebaasi. Käskude töötlemine on single-threaded, seega on käitumine ettearvatav ja ilma race condition'iteta.

  • Tüüpiline latentsus alla 1 ms ja üle 100 000 operatsiooni sekundis ühel sõlmel
  • Natiivsed struktuurid: hash'id sessioonidele, sorted set edetabelitele ja rate limitingule, stream järjekordadele
  • Käskudel single-threaded → ettearvatav käitumine, ilma keerukate blokeeringuteta

Vahemälu: sinu lehed ja andmed

Strateegia on cache-aside: esimene päring loeb PostgreSQL-ist ja salvestab tulemuse Redisesse TTL-iga (elueaga); järgmised päringud võtavad selle otse mälust. Kui lehte muudad, kustutatakse võti selgesõnaliselt — me ei serveeri kunagi aegunud andmeid pimeda TTL-i kaudu.

Esitlussaidi või e-poe jaoks tähendab see, et tootenimekirjad, menüüd, populaarsed lehed ja sisufragmendid serveeritakse andmebaasi üle koormamata. Tippudel (kampaania, Black Friday) neelab Redis korduvad päringud ja hoiab saidi kiire.

  • Cache-aside selge kehtetuks tunnistamisega — ilma aegunud andmeteta
  • Salvestab lehefragmente ja päringutulemusi, mitte ainult tervet lehti
  • Kaitseb PostgreSQL-i liiklustippudel, vähendades vastuseaegu

Sessioonid, ostukorv ja kuritarvituste vastane kaitse

Kasutajasessioonid ja refresh tokenid asuvad Redises: autentimine, automaatne aegumine TTL-iga ja tühistamine kõigis seadmetes, kui keegi välja logib või parooli vahetab.

4buildsite'is ehitatud e-poodide ostukorv hoitakse autentimata külastajate jaoks Redises — aegumisega, põhiandmebaasi paisutamata. Samuti rakendab Redis kontaktivormidel ja sisselogimisel rate limitingut sorted set'ide abil, et peatada rämpspost ja jõhkra jõu katsed enne, kui need andmebaasini jõuavad.

  • Sessioonisalvestus automaatse aegumise ja tokenite selektiivse tühistamisega
  • Püsiv ostukorv TTL-iga anonüümsetele külastajatele
  • Rate limiting ja kuritarvituste vastane kaitse vormidel ja autentimisel

Reaalaeg ja taustatööde järjekorrad

Redis Pub/Sub ja Streams toidavad reaalajauuendusi: laoseis, mis väheneb live'is, rakendusesisene teavitus, muutuv tellimuse staatus — kõik ilma, et külastaja peaks lehte värskendama, ja ilma korduva pollimiseta, mis serverit väsitab.

Rasked ülesanded (pildi töötlemine, ekspordi genereerimine, sünkroonimine) lähevad Redise järjekorda ja neid täidavad taustal worker'id, et külastaja ei peaks ootama ülesande lõppu. Hajutatud lukustamismehhanism tagab, et kriitiline operatsioon ei käivitu kaks korda.

  • Pub/Sub ja Streams live-sündmuste jaoks (laoseis, tellimused, teavitused)
  • Tööjärjekorrad rasketeks töötlusteks, mida täidetakse asünkroonselt
  • Hajutatud lukustamine operatsioonidele, mis ei tohi kaks korda käivituda

Eelised ja piirangud

Eelised

  • Vastus alla 1 ms: vahemällu salvestatud andmeid serveeritakse mälust
  • Vähendab drastiliselt PostgreSQL-i koormust suure liikluse korral
  • Natiivsed struktuurid sessioonidele, ostukorvile, rate limitingule ja edetabelitele
  • Pub/Sub ja Streams reaalajafunktsioonideks, ilma pollimiseta
  • Tööjärjekorrad raskeks töötluseks, külastajat blokeerimata
  • Platvormi poolt kaasa arvatud ja hallatud — sinu jaoks null seadistust

Piirangud

  • Andmed asuvad RAM-is, mis on kallim kui ketas → pole mõeldud tohutute „külmade“ andmemahtude jaoks
  • See on vahemälu / abikiht, mitte tõeallikas — püsivad andmed jäävad PostgreSQL-i
  • Püsivus (RDB/AOF) vähendab, kuid ei kõrvalda täielikult riski kaotada krahhi korral viimased sekundid
  • Nõuab õiget kehtetuks tunnistamise strateegiat, vastasel juhul võib serveerida aegunud andmeid

Lühike kokkuvõte

Kasuta Redist kõige jaoks, mis peab olema kohene — vahemälu, sessioonid, ostukorv, rate limiting, reaalaeg ja tööjärjekorrad. Ära kasuta seda põhiandmehoidlana; selleks jääb PostgreSQL. 4buildsite'is on sul mõlemad, automaatselt sobitatud: sa ei pea midagi valima ega seadistama.

Spetsifikatsioonide tabel

VõimekusDetailKus ehitajas kasutatakse
Latentsus< 1 ms (mälusisene)Lehed ja andmed vahemälust
Läbilaskevõime> 100 000 op/s sõlme kohtaSuur liiklus ilma andmebaasi kukkumata
Andmestruktuuridstring, hash, list, set, sorted set, streamSessioonid, ostukorv, edetabelid, järjekorrad, rate limiting
PüsivusRDB snapshot + AOF-logiKiire taastumine pärast taaskäivitust
AegumineTTL võtme kohtaOstukorv, sessioonid ja vahemälu automaatse puhastusega
ReaalaegPub/Sub + StreamsLaoseis live'is, teavitused, tellimuse staatus

Redis (vahemälu) vs ainult andmebaas

KriteeriumRedisegaAinult PostgreSQL
Vastuseaeg korduvatele andmetelealla 1 ms, mälustkümneid ms, päring igal päringul
Suure liikluse korralandmebaas kaitstud, skaleerub lihtsaltandmebaas ülekoormatud, risk timeout'ideks
Ostukorv ja sessioonidautomaatse aegumisegatabelid, mis kasvavad ja koormavad andmebaasi
Reaalaegnatiivne Pub/Sub ja Streamskorduv pollimine, kulukas
Tööjärjekorradnatiivsed, lihtsad kasutadaimproviseeritud lahendused või puuduvad

Korduma kippuvad küsimused

Mis on Redis, lühidalt?

Ülikiire mälusisene andmebaas, mida kasutatakse vahemälu-, sessiooni- ja reaalajakihina põhiandmebaasi ees. Vastab alla millisekundi.

Miks te ei kasuta lihtsalt PostgreSQL-i?

PostgreSQL on tõeallikas (püsivad andmed), kuid Redis serveerib korduvaid andmeid alla millisekundiga ning võtab üle ostukorvi, sessioonid, rate limitingu ja reaalaja, kaitstes andmebaasi suure liikluse eest. Need kaks töötavad koos.

Kas ma kaotan andmeid, kui Redis kukub?

Mitte saidi sisu: püsivad andmed on PostgreSQL-is. Redises on ainult vahemälu ja ajutised andmed ning RDB/AOF-püsivus vähendab kaotusi.

Kas ma pean Redist ise seadistama?

Ei. See on 4buildsite'i platvormi poolt kaasa arvatud ja hallatud; sina saad kiiruse ja reaalajafunktsioonide eelised, midagi haldamata.

Kuidas Redis veebipoodi aitab?

Ostukorv külastajatele, vahemällu salvestatud tootenimekirjad, live'is uuendatav laoseis ning kuritarvituste vastane kaitse kassas ja vormidel — kõik andmebaasi koormamata.

Kuidas Redis mõjutab serveri vastuseaega?

Vahemällu salvestatud andmed tulevad mälust, mitte andmebaasipäringust. Aega esimese baidini mõõdab näitaja TTFB (Time to First Byte).

4b2b.net
Äriökosüsteem
4conta.ro
Raamatupidamine
4invoices.net
Arvelduse rakendus
4expenses.net
Kulude haldus
4notify.net
Teavitused
4hosting.net
Veebimajutus
4database.net
Andmebaasid
4buildsite.net
Kodulehe koostaja
4myapp.net
Rakenduste koostaja
4avatars.net
Tehisintellekti avatarid
4chaty.net
Tehisintellekti vestlusrobot
4webagency.net
Tarkvara veebiagentuuridele
4softedu.net
Kodulehed hariduse jaoks
4softcrm.net
CRM-platvorm
4softerp.net
ERP-süsteem
4softhr.net
Personalijuhtimine
4mystaff.net
Töötajate portaal
4myprojects.net
Projektijuhtimine
4mycontracts.net
Lepingud
4docs.net
Dokumendihaldus
4appointments.net
Broneeringud
4marketingonline.net
Turundus
4insurance.net
Kindlustus
4property.net
Kinnisvara
4lawyers.net
Tarkvara juristidele
4mygarage.net
Autoteenindus
4driving.net
Autokoolid
4fleet.net
Autopargi haldus
4myevents.net
Üritused
4therapy.net
Teraapia
4clinics.net
Kliinikud
4dental.net
Hambakliinikud
4restaurants.net
Restoranid
4beautify.net
Ilusalong
4gym.net
Spordiklubid
4guards.net
Turvafirmad
4softvet.net
Loomakliinikud
4softauto.net
Autoäri tarkvara
4construct.net
Ehitusettevõtted
4marketplace.net
Kauplemisplatvorm
4shopy.net
E-pood
4pricing.net
Hinnavõrdlus
4salefood.net
Toidu kohaletoimetamine
4rentify.net
Üürileandmine
4transports.net
Transport
4agencytravel.net
Reisibüroo
4hotel.net
Hotellihaldus
4ong.net
MTÜ-de haldus