Redis — skyndiminni í vinnsluminni fyrir vefi og verslanir
Redis er hraðalagið á bak við vefi, verslanir og markaðstorg sem smíðuð eru á 4buildsite: það geymir í minni (RAM) nákvæmlega þau gögn sem þarf að bera fram hratt — skyndiminnisvistaðar síður, lotur, körfur, hraðamörk — og svarar fljótt. Sannleiksuppsprettan er áfram PostgreSQL; Redis ver hana við mikla umferð og stuðlar að hraðri upplifun. Það er innifalið og í umsjá vettvangsins, án nokkurra stillinga af þinni hálfu.
Hvað er Redis og hvers vegna er það svona hratt
Redis (REmote DIctionary Server) er opinn gagnagrunnur í vinnsluminni: hann geymir gögnin í RAM, ekki á diski, og svarar því hratt. Á 4buildsite notum við hann sem hröðunarlag fyrir framan PostgreSQL — fyrir allt sem þarf að bera fram hratt: síður, lotur, körfur og hraðamörk.
Ólíkt diski er RAM að stærðargráðu hraðara og Redis bætir við innbyggðum gagnagerðum (string, hash, listi, set, sorted set, stream) sem leyfa flóknar aðgerðir beint í minni, án ferðar fram og til baka í aðalgagnagrunninn. Vinnsla skipana er einþráða (single-threaded), svo hegðunin er fyrirsjáanleg og án kapphlaupsástands (race conditions).
- Svartími í vinnsluminni og mikil afköst á einum hnút
- Innbyggðar gagnagerðir: hash fyrir lotur, sorted set fyrir topplista og hraðatakmörkun, stream fyrir biðraðir
- Einþráða á skipunum → fyrirsjáanleg hegðun, án flókinna stíflna
Skyndiminni: síðurnar þínar og gögn, borin fram úr skyndiminni
Aðferðin er cache-aside: fyrsta beiðni les úr PostgreSQL og vistar niðurstöðuna í Redis með TTL (líftíma); næstu beiðnir taka hana beint úr minni. Þegar þú breytir síðu er lykillinn eytt skýrt — við berum aldrei fram úrelt gögn með blindu TTL.
Fyrir kynningarvef eða verslun þýðir þetta að vörulistar, valmyndir, vinsælar síður og efnisbrot eru afhent jafnvel við mikla umferð, án þess að ofhlaða gagnagrunninn. Við toppa (herferð, Black Friday) drekkur Redis í sig endurteknar beiðnir.
- Cache-aside með skýrri ógildingu — engin úrelt gögn
- Geymir síðubrot og niðurstöður fyrirspurna, ekki bara heilar síður
- Ver PostgreSQL við umferðartoppa og styttir svartíma
Lotur, innkaupakarfa og vörn gegn misnotkun
Notendalotur og endurnýjunartákn (refresh tokens) liggja í Redis: hröð auðkenning, sjálfvirkt fyrning með TTL og afturköllun á öllum tækjum þegar einhver skráir sig út eða breytir lykilorði.
Innkaupakarfan í verslunum sem smíðaðar eru á 4buildsite er geymd í Redis fyrir óauðkennda gesti — með fyrningu, án þess að blása upp aðalgagnagrunninn. Redis framfylgir einnig hraðatakmörkun á tengiliðaeyðublöðum og innskráningu, með sorted sets, til að stöðva ruslpóst og tilraunir með vélrænum ágiskunum áður en þær ná í gagnagrunninn.
- Lotugeymsla með sjálfvirkri fyrningu og sértækri afturköllun tákna
- Varanleg karfa með TTL fyrir nafnlausa gesti
- Hraðatakmörkun og vörn gegn misnotkun á eyðublöðum og auðkenningu
Rauntími og verkbiðraðir í bakgrunni
Redis Pub/Sub og Streams knýja rauntímauppfærslur: birgðir sem minnka í beinni, tilkynning í forritinu, staða pöntunar sem breytist — allt án þess að gesturinn endurhlaði síðuna og án endurtekinnar kjörkönnunar (polling) sem þreytir þjóninn.
Þung verk (vinnsla myndar, gerð útflutnings, samstilling) fara í Redis-biðröð og eru keyrð af vinnsluferlum í bakgrunni, svo gesturinn þurfi ekki að bíða eftir þeim. Dreifð læsing (distributed locking) tryggir að mikilvæg aðgerð keyrir ekki tvisvar.
- Pub/Sub og Streams fyrir lifandi atburði (birgðir, pantanir, tilkynningar)
- Verkbiðraðir fyrir þunga vinnslu sem keyrð er ósamstillt
- Dreifð læsing fyrir aðgerðir sem mega ekki keyra tvisvar
Kostir og takmarkanir
Kostir
- Gögn í skyndiminni eru borin fram úr minni, án ferðar í gagnagrunninn
- Dregur stórlega úr álagi á PostgreSQL við mikla umferð
- Innbyggðar gagnagerðir fyrir lotur, körfu, hraðatakmörkun og topplista
- Pub/Sub og Streams fyrir rauntímavirkni, án kjörkönnunar
- Verkbiðraðir fyrir þunga vinnslu, án þess að hindra gestinn
- Innifalið og í umsjá vettvangsins — engar stillingar fyrir þig
Takmarkanir
- Gögnin liggja í RAM, sem er dýrara en diskur → ekki fyrir gríðarlegt magn „kaldra“ gagna
- Þetta er skyndiminni / hjálparlag, ekki sannleiksuppsprettan — varanleg gögn haldast í PostgreSQL
- Varanleiki (RDB/AOF) minnkar, en útrýmir ekki alveg, hættunni á að tapa síðustu sekúndunum við hrun
- Krefst réttrar ógildingaraðferðar, annars getur hann borið fram úrelt gögn
Stutt niðurstaða
Notaðu Redis fyrir allt sem þarf að bera fram hratt — skyndiminni, lotur, körfu, hraðatakmörkun, rauntíma og verkbiðraðir. Notaðu hann ekki sem aðalgagnageymslu; til þess er PostgreSQL áfram. Á 4buildsite færðu hvort tveggja, stillt sjálfkrafa: þú þarft ekki að velja eða stilla neitt.
Tækniforskriftir
| Geta | Nánar | Hvar það er notað í smiðnum |
|---|---|---|
| Svartími | Lágur, úr vinnsluminni | Síður og gögn borin fram úr skyndiminni |
| Afköst | Mikil afköst á hnút | Mikil umferð, minna álag á gagnagrunninn |
| Gagnagerðir | string, hash, list, set, sorted set, stream | Lotur, karfa, topplistar, biðraðir, hraðatakmörkun |
| Varanleiki | RDB-skyndimynd + AOF-annáll | Hröð endurheimt eftir endurræsingu |
| Fyrning | TTL á hvern lykil | Karfa, lotur og skyndiminni með sjálfvirkri hreinsun |
| Rauntími | Pub/Sub + Streams | Lifandi birgðir, tilkynningar, staða pöntunar |
Redis (skyndiminni) samanborið við eingöngu gagnagrunn
| Viðmið | Með Redis | Aðeins PostgreSQL |
|---|---|---|
| Svartími fyrir endurtekin gögn | úr minni, án ferðar í gagnagrunninn | fyrirspurn við hverja beiðni, hægari |
| Við mikla umferð | gagnagrunnurinn varinn, skalar auðveldlega | gagnagrunnurinn ofhlaðist, hætta á tímamörkum |
| Karfa og lotur | hraðar, með sjálfvirkri fyrningu | töflur sem stækka og íþyngja gagnagrunninum |
| Rauntími | innbyggt Pub/Sub og Streams | endurtekin kjörkönnun, kostnaðarsöm |
| Verkbiðraðir | innbyggðar, einfaldar í notkun | bráðabirgðalausnir eða engar |
Algengar spurningar
Hvað er Redis, í stuttu máli?
Afar hraður gagnagrunnur í vinnsluminni, notaður sem lag fyrir skyndiminni, lotur og rauntíma fyrir framan aðalgagnagrunninn.
Hvers vegna notið þið ekki bara PostgreSQL?
PostgreSQL er sannleiksuppsprettan (varanleg gögn), en Redis ber fram endurtekin gögn hratt og tekur við körfunni, lotunum, hraðatakmörkuninni og rauntímanum, og ver gagnagrunninn við mikla umferð. Þeir vinna saman.
Tapa ég gögnum ef Redis fellur?
Ekki efni vefsins: varanleg gögn eru í PostgreSQL. Í Redis eru aðeins skyndiminni og tímabundin gögn og RDB/AOF-varanleiki dregur úr tapi.
Þarf ég að stilla Redis sjálf(ur)?
Nei. Það er innifalið og í umsjá 4buildsite-vettvangsins; þú nýtur hraðans og rauntímaeiginleikanna án þess að stýra neinu.
Hvernig hjálpar Redis netverslun?
Karfa fyrir gesti, vörulistar í skyndiminni, birgðir uppfærðar í beinni og vörn gegn misnotkun við greiðslu og á eyðublöðum — allt án þess að íþyngja gagnagrunninum.
Hjálpar Redis við SEO og Core Web Vitals?
Já, óbeint: stuttur svartími bætir TTFB og Core Web Vitals, merki sem skipta máli bæði fyrir Google og upplifun notenda.