Cachelagrings betydning
Cachelagring bevarer genanvendelige kopier af data, der bruges ofte, i hukommelsen, så programmer undgår gentagne databasekald og returnerer resultater hurtigere.
Cachelagring bevarer genanvendelige kopier af data, der bruges ofte, i hukommelsen, så programmer undgår gentagne databasekald og returnerer resultater hurtigere.
Cachelagring er den praksis, hvor nøgleværdidata lagres i midlertidig hukommelse (f.eks. et ikke-relationelt struktureret forespørgselssprog (NoSQL)-database), så programmer kan hente dem hurtigere, end de kunne fra et traditionelt lager. I cloudlagerarkitekturer – hvor anmodninger ofte fungerer på tværs af netværk og berøringsdelte tjenester – cachelagring kan hjælpe med at holde svartiderne lave og reducere gentaget arbejde.
De fleste systemer har en varig “kilde til sandheden” (en database) til komplette delmængder og beholder derefter en cache til midlertidige delmængder, der læses ofte. Når en anmodning kommer ind, kontrollerer appen cachen først. hvis dataene er der, returneres de hurtigt uden at forespørge backend igen. Udviklere cachelagrer også behandlede data og genbruger dem for at behandle anmodninger hurtigere end standardforespørgsler til relationsdatabaser, SQL-databasereller PostgreSQL-databaser med åben kildekode.
Gode kandidater omfatter data, der læses gentagne gange, og data, der ændres sjældent (f.eks. produkt- og prisoplysninger eller delte statiske ressourcer, der er dyre at konstruere).
Hvis en handling transformerer data eller udfører en kompliceret beregning, kan cachelagring af resultatet undgå at genberegnes for efterfølgende anmodninger.
Udviklere bruger cachelagre på flere niveauer (“cachelag”) til at gemme forskellige typer data i separate cachelagre ud fra behov. Tilføjelse af et eller flere cachelag kan forbedre gennemløb og ventetid i et datalag.
Lagre i hukommelsen bruges ofte til at opbevare store mængder sessionsdata, f.eks. brugerinput, indkøbskurvposter eller tilpasningsindstillinger i korte perioder. I forbindelse med apps med høj sikkerhed gemmer teams også sessionstilstand i cachen, så appen kan være tilstandsløs.
Cachelagring kan forbedre ydeevnen på et par konkrete måder:
I mange clouddesign er en cache placeret ved siden af et primært datalager (f.eks. en database). Det primære lager indeholder det komplette, varige datasæt på cloudserver, mens cachen bevarer et mindre, midlertidigt delmængde, der er hurtigere at læse.
En almindelig konfiguration er et separat cachelag eller en cache, der findes i det valgte app- eller databaseniveau – afhængigt af hvor du har brug for hurtige læsninger.
Nogle systemer bruger cachelagring på flere niveauer (“cachelag”), så forskellige typer data findes i forskellige cachelagre ud fra behov. Hvis du tilføjer et eller flere cachelag, kan det forbedre datalagets gennemløb og ventetid og reducere de overordnede omkostninger ved at reducere back end-belastningen.
Teams cachelagrer typisk data, der falder i nogle få buckets:
Apps kan læse fra og skrive til en cache på flere standard måder. Her er de mest almindelige mønstre, og hvad de betyder i praksis.
Brug af cachelag kan forbedre gennemløb og ventetid ved at betjene almindelige anmodninger fra cachen i stedet for gentagne gange at forespørge back end-lageret. Dette kan reducere behovet for at skalere databaseinfrastrukturen, fordi færre anmodninger når databasen i første omgang.
I forbindelse med apps med pludselige stigninger i forbruget kan cachelagre i hukommelsen hjælpe med at reducere ventetiden ved at holde ofte anmodede data tæt på, hvor de bruges.
Brug disse som udgangspunkt, når du vælger en arbejdsproces:
Cachelagring forbedrer programmets ydeevne, fordi læsning fra en cache i hukommelsen er hurtigere end læsning fra et diskdrevent datalager. Når der behandles flere anmodninger fra cachen, sender systemer færre forespørgsler til back end-databaser, hvilket kan reducere behovet for at skalere databaseinfrastrukturen og reducere relaterede omkostninger.
Cachelagring hjælper med at klippe gentaget arbejde. Data, der læses gentagne gange – eller som er dyre at konstruere – kan gemmes én gang og genbruges. Hvis en handling udfører en kompliceret beregning eller transformerer data, reducerer cachelagring af resultatet gentagen beregning for efterfølgende anmodninger.
Mange websteder cachelagrer sideoutput (f.eks. HTML og klientscripts), så serveren kan returnere det cachelagrede output i stedet for at køre sidekoden igen hver gang. Cachelagring understøtter også scenarier med web multimedier via webcachelagring og netværkscachelagring, såsom netværk, der leverer indhold (CDN'er).
Apps gemmer ofte midlertidige delmængder af data i en cache til hurtig hentning, mens den primære database bevarer det komplette varige datasæt. Cachelagring af behandlede data og genbrug af dem kan behandle anmodninger hurtigere end standarddatabaseforespørgsler.
Teams tilføjer ofte et eller flere cachelag for at forbedre gennemløb og ventetid ved at behandle almindelige forespørgsler fra cachen og reducere databasebelastningen. Cachelagre i hukommelsen kan hjælpe, når forbruget stiger, og behovet for gennemløb stiger, og det mindsker ventetiden i disse perioder.
Cachelagring bruges ofte til at gemme store mængder kortvarige sessionsdata (f.eks. brugerinput eller indstillinger for område for personlig tilpasning) i et lager i hukommelsen. Nogle teams gemmer også sessionstilstand i cachen, så apps med høj ydeevne kan holde appniveauet tilstandsløst. I forbindelse med operativsystemer er data, der ændres sjældent – såsom produkt- og prisoplysninger – et almindeligt cachelagringsmål.
En browsercache gemmer kopier af statiske ressourcer på en brugers enhed, så gentagne besøg kan genbruge disse filer i stedet for at downloade dem igen.
Cachelagring på serversiden sker i de processer, der kører forretningstjenester eksternt, i stedet for på slutbrugerens enhed. Cacher på serversiden er ofte enten private (lokale til én appinstans) eller delt (bruges af mange appforekomster).
Et CDN cachelagrer indhold på edge-servere tættere på slutbrugerne, så anmodninger ikke altid går tilbage til oprindelsen. I modsætning til en browsercache (én bruger) deles en CDN-cache – én brugers anmodning kan udfylde indhold, som en anden bruger senere modtager.
Cachelagring er ikke kun etcloudcomputing-mønster, – hardware og hukommelseslag bruger det også.
CPU-cache er et lille, hurtigt hukommelsesområde nær (eller i) processoren, der gemmer kopier af ofte anvendte data og instruktioner for at reducere den tid, der bruges på at vente på hovedhukommelsen.
Cache (i hukommelsen) er den mest enkle softwarecachetype: Et lager i hukommelsen, der ligger i adresseområdet for en enkelt proces og tilgås direkte af den pågældende proces.
En distribueret cache strækker sig over flere servere, så cachen kan vokse og transaktionskapaciteten kan øges ud over én maskine. Mange delte cachetjenester bruger en klynge af servere og distribuerer cachelagrede data på tværs af klyngen; skalering af cachen kan være lige så enkelt som at tilføje flere servere. Nogle distribuerede design lagdeler også cachelagre, så et fejltrin på ét lag trækker fra en upstreamudbyder og gemmer derefter resultatet lokalt til den næste anmodning.
Cachelagring holder data, der bruges ofte, tættere på, hvor de bruges, hvilket kan forbedre svartiden og hjælpe et system med at håndtere flere samtidige anmodninger. Det kan også reducere konflikt i det oprindelige datalager, f.eks. når en database har begrænsede forbindelser.
I distribuerede programmer sker cachelagring ofte på mere end ét sted—på klientsiden (f.eks. i en browser) og på serversiden (i et program eller en delt cachetjeneste).
Start i det små, og fokuser på de data, der giver dig den tydeligste afkast:
En cache indeholder normalt kopier af data fra et primært lager, så aktualitet kræver opmærksomhed:
Cachelagring er en central byggesten i moderne systemer, fordi den passer til mange arkitekturer – fra enkelte tjenester til distribuerede apps og edge-levering. Hvis du vil have en cloududbyder med en administreret cache i hukommelsen, kan du udforske Azure.