Trace Id is missing
Gå til hovedindhold

Hvad er cachelagring?

Udviklere og it-teknikere bruger cachelagring til at gemme og få adgang til nøgleværdidata i en midlertidig hukommelse hurtigere og med en mindre indsats end ved lagrede data i det traditionelle datalager. Cachelagring er nyttigt i flere scenarier med flere teknologier, f.eks. cachelagring af computer med RAM (Random Access Memory), netværkscachelagring på et netværk, der leverer indhold, en webcache til multimediedata for web eller en cloudcache for at hjælpe med at gøre cloudprogrammer mere robuste. Udviklere designer ofte programmer til cachelagrede data og omformer dem derefter for at behandle anmodninger hurtigere end i standarddatabaseforespørgsler.

Du kan bruge cachelagring til at reducere databaseomkostningerne, levere højere gennemløb og reducere ventetiden, end de fleste databaser kan tilbyde, samt øge ydeevnen af cloud- og webprogrammer.

Hvordan fungerer cachelagring for databaser?

Udviklere kan supplere en primær database med en databasecache, som de kan placere i databasen eller programmet eller konfigurere som et separat lag. Selvom de typisk anvender en traditionel database til at gemme store, holdbare og komplette datasæt, så bruger de en cache til at gemme midlertidige undersæt af data, som kan hentes hurtigt.

Du kan bruge cachelagring med alle typer datalagre, herunder NoSQL-databaser samt relationsdatabaser såsom SQL Server, MySQLeller MariaDB. Cachelagring fungerer også godt sammen med mange specifikke dataplatforme, f.eks. Azure Database til PostgreSQLAzure SQL Databaseeller Azure SQL Managed Instance. Vi anbefaler, at du undersøger, hvilken type datalager der opfylder dine krav bedst, før du begynder at konfigurere en dataarkitektur. Du skal f.eks. forstå, hvad PostgreSQL er, før du bruger det til at kombinere relationsdatalagre og ustrukturerede datalagre.

Fordelene ved cachelag, og hvad er Redis i det hele taget?

Udviklere bruger cacher på flere niveauer kaldet cachelag til at gemme forskellige typer data i separate cacher efter behov. Ved at tilføje et eller flere cachelag kan du forbedre datalagets gennemløb og ydeevnen i forbindelse med ventetid væsentligt.

Redis er en populær open source-datastruktur i hukommelsen, der bruges til at skabe højtydende cachelag og andre datalagre. En nylig undersøgelse har vist, at tilføjelse af Azure Cache for Redis til et prøveprogram øgede dataoverførselshastighed med mere end 800 procent og forbedret ydeevne i forbindelse med ventetid med mere end 1.000 procentdatagennemløbet med mere end 800 % og forbedrede ydeevnen i forbindelse med ventetid med mere end 1.000 %1.

Cacher kan også reducere de samlede ejeromkostninger (TCO) for et datalag. Hvis du bruger cacher til at håndtere de mest almindelige forespørgsler og reducere databasebelastningen, kan du reducere behovet for at overklargøre databaseforekomster, hvilket medfører betydelige omkostningsbesparelser og lavere samlede ejeromkostninger.

Typer af cachelagring

Din cachelagringsstrategi afhænger af, hvordan dit program læser og skriver data. Er dit program skrivetungt, eller skrives data én gang og læses ofte? Er de data, der returneres, altid entydige? Forskellige mønstre for adgang til data påvirker den måde, som du konfigurerer en cache på. Almindelige cachelagringstyper omfatter cache-til-side, gennemlæsning/gennemskrivning og bagudskrivning/tilbageskrivning.

Cache-til-side

Til programmer med læsetunge arbejdsbelastninger bruger udviklere ofte et programmeringsmønster, der er gemt i cachen, eller "sidecache." De finder sidecachen uden for programmet, som derefter kan oprette forbindelse til enten cachen for at sende en forespørgsel efter og hente data eller direkte til databasen, hvis dataene ikke er i cachen. Efterhånden som programmet henter dataene, kopieres de til cachen til fremtidige forespørgsler.

Du kan bruge en sidecache til at forbedre programmets ydeevne, opretholde ensartethed mellem cachen og datalageret og sikre, at data i cachen ikke bliver forældede.

Gennemlæsnings-/gennemskrivningscachelagring

Cacher til gennemskrivning holder sig selv opdateret, hvorimod programmerne først skriver data til cachen og derefter til databasen ved cachelagring med gennemskrivning. Begge cacher er på linje med databasen, og programmet behandler dem som det primære datalager.

Gennemlæsningscacher hjælper med at forenkle programmer, hvor der anmodes om de samme data igen og igen, men selve cachen er mere kompleks, hvorimod totrinsprocessen med gennemskrivning kan skabe ventetid. Udviklere parrer de to for at sikre ensartede data mellem cachen og databasen, reducere ventetiden for cachen til gennemskrivning og gøre det nemmere at opdatere Gennemlæsningscachen.

Med cachelagring til gennemskrivning/gennemlæsning kan udviklere forenkle programkode, øge skalerbarheden af cachen og minimere belastningen på databasen.

Cache med bagudskrivning/tilbageskrivning

I dette scenarie skriver programmet data til cachen, som straks anerkendes, og derefter skriver selve cachen dataene tilbage til databasen i baggrunden. Cacher til tilbageskrivning, der også sommetider kaldes for cacher til tilbageskrivning, er de bedste til skrivetunge arbejdsbelastninger. De forbedrer ydeevnen, da programmet ikke behøver at vente på, at skrivningen fuldføres, før der fortsættes med næste opgave.

Distribueret cache vs. sessionslager

Distribuerede cacher forveksles ofte med sessionslagre, som ligner hinanden, men med forskellige krav og formål. I stedet for at bruge en distribueret cache som supplement til en database implementerer udviklere sessionslagre, som er midlertidige datalagre på brugerlaget, til profiler, meddelelser og andre brugerdata i sessionsorienterede programmer, f.eks. webprogrammer.

Hvad er et sessionslager?

Sessionsorienterede programmer sporer handlinger, som brugerne udfører, når de er logget på programmerne. For at bevare disse data, når brugeren logger af, kan du beholde dem i et sessionslager, hvilket forbedrer sessionsadministrationen, reducerer omkostningerne og øger programmets ydeevne.

Hvordan adskiller brug af et sessionslager sig fra cachelagring af en database?

I et sessionslager deles data ikke mellem forskellige brugere, hvorimod forskellige brugere ved cachelagring har adgang til den samme cache. Udviklere bruger cachelagring til at forbedre ydeevnen af en database eller lagerforekomst, mens de bruger sessionslagre til at øge programmets ydeevne ved at skrive data til lageret i hukommelsen, hvilket helt fjerner behovet for at få adgang til en database.

Data, der skrives til et sessionslager, er typisk kortvarige, mens data, der er cachelagret med en primær database, normalt er beregnet til at holde meget længere. Et sessionslager kræver replikering, høj tilgængelighed og dataholdbarhed for at sikre, at der ikke mistes transaktionsdata, og brugerne forbliver i gang. Hvis dataene i en sidecache på den anden side mistes, er der altid en kopi af dem i den permanente database.

Fordele ved cachelagring

Forbedret ydeevne af programmet

Det er meget hurtigere at læse data fra en cache i hukommelsen end at tilgå data fra et diskdrevet datalager. Og med hurtigere adgang til data forbedres den generelle programoplevelse væsentligt.

Reduceret forbrug og reducerede omkostninger for database

Cachelagring medfører færre databaseforespørgsler, hvilket forbedrer ydeevnen og reducerer omkostningerne ved at begrænse behovet for at skalere databaseinfrastrukturen og reducere gebyrer for gennemløb.

Skalerbar og forudsigelig ydeevne

En enkelt cacheforekomst kan håndtere millioner af anmodninger pr. sekund og tilbyder et niveau af gennemløb og skalerbarhed, som databaser ikke kan matche. Cachelagring tilbyder også den fleksibilitet, du har brug for, uanset om du skalerer dine programmer og datalagre ud eller op. Derefter kan dit program lade mange brugere få adgang til de samme filer samtidigt uden at øge belastningen på back end-databaserne. Og hvis et program ofte oplever stigninger i forbruget og højt gennemløb, kan cachelagre i hukommelsen reducere ventetiden.

Hvad bruges cachelagring til?

Cachelagring af output

Cachelagring af output hjælper med at øge ydeevnen af websiden ved at gemme den fulde kildekode for sider, f.eks HTML og klientscripts, som en server sender til browsere med henblik på gengivelse. Hver gang en bruger får vist siden, cachelagrer serveren outputkoden i programmets hukommelse. Dette giver programmet mulighed for at håndtere anmodninger uden at køre sidekode eller kommunikere med andre servere.

Cachelagring af data og databaser

Hastigheden af og gennemløbet i databaser kan være vigtige faktorer for programmets overordnede ydeevne. Cachelagring af databaser bruges til hyppige kald til data, der ikke ændres ret ofte, f.eks. priser eller lagerdata. Det hjælper websteder og programmer med at blive indlæst hurtigere og øger samtidigt gennemløbet samt reducerer ventetiden for datahentning fra back end-databaser.

Lagring af data i brugersessionen

Programbrugere genererer ofte data, der skal gemmes i korte perioder. Et datalager i hukommelsen, som Redis, er perfekt til effektivt og pålideligt at gemme store mængder sessionsdata, f.eks. brugerinput, poster i indkøbskurven eller præferencer for personlig tilpasning til en lavere pris end lagre eller databaser.

Arkitekturer for meddelelsesmæglere og publicering/abonnement

Cloudprogrammer har ofte brug for at udveksle data mellem tjenester, og de kan bruge cachelagring til at implementere arkitekturer for publicering/abonnement eller meddelelsesmægler, der reducerer ventetiden og fremskynder administrationen af data.

Programmer og API'er

På samme måde som med browsere gemmer programmer vigtige filer og data for hurtigt at genindlæse disse oplysninger, når det er nødvendigt. Cachelagrede API-svar fjerner efterspørgslen eller belastningen på programservere og databaser og leverer hurtigere svartider og bedre ydeevne.

[1] Kravene til ydeevne er baseret på data fra en undersøgelse, der blev bestilt af Microsoft og foretaget af GigaOm i oktober 2020. Undersøgelsen sammenlignede ydeevnen for et testprogram ved hjælp af en Azure-database med og uden implementering af Redis Cache som en cachelagringsløsning. Azure SQL Database og Azure Database for PostgreSQL blev brugt som databaseelementet i undersøgelsen. Der blev anvendt en Generel forekomst med 2 vCore Gen5 af Azure SQL Database og en Generel forekomst med 2 vCore af Azure Database for PostgreSQL sammen med en P1 Premium forekomst på 6-gigabyte af Azure for Redis. Disse resultater blev sammenlignet med Generelle forekomster med 8, 16, 24 og 32 vCore Gen5 af Azure SQL Database og Generelle forekomster med 8, 16, 24 og 32 vCore af Azure Database for PostgreSQL uden Azure Cache for Redis. Benchmarkdataene tages fra GigaOm-belastningstesten af databaser med webprogrammer, som simulerer et almindeligt webprogram og en back end-database, der belastes gennem en øgning af HTTP-anmodninger. De faktiske resultater kan variere afhængigt af konfiguration og område. Se hele undersøgelsenSe hele undersøgelsen.

Gratis konto

Prøv Azure cloudcomputing-tjenester gratis i op til 30 dage.

Betalt efter forbrug

Kom i gang med priser, der betales efter forbrug. Der er ingen forudgående forpligtelser – du kan annullere når som helst.

Føj et smidigt cachelagringslag til dit program med en fuldt administreret Redis-tjeneste. Få mere at vide om, hvordan du kommer i gang med Azure Cache for Redis.

Hvis du vil køre fleksibel, filbaseret cachelagring for programmer med høj ydeevne, skal du læse om Azure HPC Cache.