This is the Trace Id: 7f3a72762bbbf0ec4c22dce2b928b8ff
Ugrás a tartalomtörzsre
Azure
színátmenetes háttér

Mit jelent a gyorsítótárazás?

Megtudhatja, hogyan javítja a gyorsítótárazás a rendszer teljesítményét és hatékonyságát.

A gyorsítótárazás jelentése

A gyorsítótárazás megőrzi a gyakran használt adatok újrafelhasználható másolatait a memóriában, így az alkalmazások elkerülik az ismétlődő adatbázis-hívásokat, és gyorsabban visszaadják az eredményeket.

Legfontosabb tanulságok

  • A gyorsítótárazás gyors memóriában tárolja a gyakran kért adatokat, így az alkalmazások gyorsabban válaszolhatnak anélkül, hogy minden alkalommal az elsődleges adatbázist kellene használniuk.
  • Egy tipikus kérés először ellenőrzi a gyorsítótárat, majd ha nem találja meg az adatot, a forrásadatbázisból tölti be, és a szokásos olvasási/írási minták szerint frissíti a gyorsítótárat.
  • Ha jól alkalmazzák, a gyorsítótárazás csökkenti a késést és a háttérrendszer terhelését, segít kezelni a forgalmi csúcsokat, és támogatja az olyan általános forgatókönyveket, mint a webhelyek, az API-k és a munkamenet-állapot.
  • A gyorsítótárazás több rétegben is megjelenik, és akkor működik a leghatékonyabban, ha stabil, olvasásigényes adatokat választunk, és tartós, megbízható adatforrást tartunk fenn egy tartalék tervvel.

A gyorsítótárazás ismertetése

Mi az a gyorsítótár?

A gyorsítótárazás az a gyakorlat, amikor kulcs-érték adatokat ideiglenes memóriában tárolunk (például egy nemrelációs strukturált lekérdezőnyelvű NoSQL adatbázisban), hogy az alkalmazások gyorsabban érjék el őket, mint a hagyományos tárolóból. A felhőtárhely architektúrákban — ahol a kérések gyakran hálózatokon haladnak át, és megosztott szolgáltatásokat érintenek — a gyorsítótárazás segíthet alacsonyan tartani a válaszidőt, és csökkentheti az ismétlődő munkát.

Hogyan működik a gyorsítótárazás?

A legtöbb rendszerben van egy tartós „forrása az igazságnak” (egy adatbázis) a teljes adathalmazhoz, illetve egy gyorsítótár a gyakran olvasott, átmeneti részhalmazokhoz. Amikor érkezik egy kérés, az alkalmazás először a gyorsítótárat ellenőrzi; ha az adat ott van, gyorsan visszaadja anélkül, hogy újra lekérdezné a háttérrendszerből. A fejlesztők emellett a feldolgozott adatokat is gyorsítótárba helyezik, és azokat újra felhasználják, így a kéréseket gyorsabban tudják kiszolgálni, mint a relációs adatbázisokhoz, az SQL-adatbázisokhoz vagy a nyílt forráskódú PostgreSQL-adatbázisokhoz intézett szokásos lekérdezések esetén.

A gyorsítótárazás alapelvei

1. Sokat olvasott elemek gyorsítótárazása

Az ilyen adatok közé tartoznak az ismétlődően lekért adatok, valamint azok, amelyek ritkán változnak (például termék- és árinformációk, illetve olyan megosztott statikus erőforrások, amelyek létrehozása költséges).

2. Tárolja a gyakran ismétlődő műveletek eredményeit a gyorsítótárban

Ha egy művelet adatokat alakít át vagy bonyolult számítást hajt végre, az eredmény gyorsítótárazásával elkerülhető, hogy azt a későbbi lekérdezések során újra ki kelljen számítani.

3. Szükség esetén használjon gyorsítótárrétegeket

A fejlesztők többszintű gyorsítótárakat („gyorsítótár-rétegeket”) használnak, hogy a különböző típusú adatokat az igénynek megfelelően különálló gyorsítótárakban tárolják. Egy vagy több gyorsítótár-réteg hozzáadása javíthatja az adatréteg átviteli sebességét és késési idejét.

4. A reszponzív alkalmazások gyors reagálásának biztosításához tartsa szemmel a munkamenet-állapotot

A memóriabeli tárolókat gyakran használják nagy mennyiségű munkamenet-adat tárolására, például felhasználói bevitelre, bevásárlókocsi-bejegyzésekre vagy rövid időszakokra vonatkozó személyre szabási beállítások tárolására. Állapotalapú alkalmazások esetén a csapatok a munkamenet-állapotot is a gyorsítótárban tárolják, hogy az alkalmazás állapot nélküli legyen.

A rendszer teljesítményére gyakorolt hatás

A gyorsítótárazás néhány konkrét módon javíthatja a teljesítményt:

  • Az adatok memóriabeli gyorsítótárból való beolvasása gyorsabb, mint a lemezalapú tárolók adatainak elérése.
  • Kevesebb lekérdezés csökkentheti a terhelést, és megszüntetheti az adatbázis-infrastruktúra skálázásának szükségességét, ami a költségeket is csökkentheti.
  • A gyorsítótárrétegek javíthatják az átviteli sebességet és a késést, a memóriabeli gyorsítótárak pedig segíthetnek csökkenteni a késést a használati csúcsok során.
  • A gyorsítótárpéldány másodpercenként több millió kérést képes kezelni, és olyan átviteli sebességet kínál, amelyre sok adatbázis nem képes.

Hogyan működik a gyorsítótárazás?

Az alapszintű folyamat: Gyorsítótár és forrásadattár

Számos felhőbeli rendszerben egy gyorsítótár található az elsődleges adattár (például egy adatbázis) mellett. Az elsődleges tároló tárolja a teljes, tartós adatkészletet a felhőkiszolgálón, míg a gyorsítótár egy kisebb, ideiglenes részhalmazt tart fenn, amely gyorsabban olvasható.

Gyakori megoldás egy önálló gyorsítótár-réteg, vagy az alkalmazás- vagy adatbázis-rétegen belül elhelyezkedő gyorsítótár – a választás attól függ, hogy hol van szükség a gyors olvasásra.

Gyorsítótárrétegek: Egynél több „gyors elérési út”

Egyes rendszerek többszintű gyorsítótárazást („gyorsítótárrétegeket”) használnak, így a különböző típusú adatok igény szerint különböző gyorsítótárakban találhatók. Egy vagy több gyorsítótárréteg hozzáadásával javíthatja az adatréteg átviteli sebességét és késését, és csökkentheti a teljes költséget a háttérbeli terhelés csökkentésével.

Mi kerül a gyorsítótárba (és miért)

A csapatok általában az alábbi néhány kategóriába sorolható adatokat tárolják gyorsítótárban:

  • Gyakran olvasott adatok (különösen, ha ritkán változnak), például termék- vagy díjszabási információk, valamint megosztott statikus erőforrások, amelyek létrehozása költséges.
  • Ismételt számítások, amikor egy művelet átalakítja az adatot, vagy összetett számítást végez — az eredmény gyorsítótárazásával elkerülhető ugyanannak a munkának az ismétlése a későbbi kéréseknél.
  • Munkamenet-állapot állapotot tároló alkalmazásokhoz, ahol a munkamenet-állapot gyorsítótárban való tárolása segíthet az alkalmazásréteget állapot nélkülivé tenni.

Gyakori gyorsítótárazási minták (olvasási/írási munkafolyamatok)

Több szokásos módja van annak, ahogyan az alkalmazások olvasnak egy gyorsítótárból, és írnak bele. Íme a leggyakoribb minták, és hogy mit jelentenek a gyakorlatban.

  • Cache-aside: Az adatot igény szerint tölti be egy adattárolóból.
  • Read-through: Az olvasás a gyorsítótárból történik, és a gyorsítótár szükség esetén lekéri az adatokat az adattárolóból.
  • Write-through: Az írás a gyorsítótárba történik, és az szinkron módon újraszinkronizál az adattárolóval.
  • Write-back (write-behind): Az írás a gyorsítótárba történik, majd az adatok kötegekben kerülnek vissza az adattárolóba.
  • Write-around: Az írás az adattárolóba történik, az olvasás pedig a gyorsítótárból; a gyorsítótár igény szerint frissül.

Miért csökkenti ez a terhelést, és miért gyorsítja fel a dolgokat

A gyorsítótárrétegek használata javíthatja az átviteli teljesítményt és a késést azáltal, hogy a gyakori kéréseket a gyorsítótárból szolgálja ki a háttértár ismételt lekérdezése helyett. Ez csökkentheti az adatbázis-infrastruktúra skálázásának szükségességét, mert eleve kevesebb kérés jut el az adatbázisig.

A használati csúcsokat mutató appoknál a memóriában lévő gyorsítótárak segíthetnek mérsékelni a késést azzal, hogy a gyakran kért adatokat közel tartják ahhoz, ahol használják őket.

Rövid útmutató: Minta kiválasztása

Ezeket használja kiindulási pontként, amikor munkafolyamatot választ:

  • A cache-aside megoldást részesítse előnyben, ha az app el tudja dönteni, mit tároljon és mikor frissítse azt.
  • A read-through megoldást részesítse előnyben, ha azt szeretné, hogy a gyorsítótár intézze az adatlekérést a háttértárból „ha szükséges”.
  • A write-through vagy write-back megoldást érdemes mérlegelni, ha az írási viselkedés fontos, és szeretne egy meghatározott újraszinkronizálási megközelítést.

A gyorsítótárazás előnyei és alkalmazásai

Gyorsabb válaszok kevesebb háttérbeli munkával

A gyorsítótárazás javítja az alkalmazás teljesítményét, mert a memóriában lévő gyorsítótárból gyorsabban lehet olvasni, mint egy lemezalapú adattárból. Ha több kérést szolgálnak ki a gyorsítótárból, a rendszerek kevesebb lekérdezést küldenek a háttéradatbázisoknak, ami csökkentheti az adatbázis-infrastruktúra skálázásának szükségességét és a kapcsolódó költségeket.

Amit gyakran kap a gyorsítótárazástól
  • Kisebb késés a gyakori olvasásoknál, mert a gyakran kért adat egy gyorsabb rétegből érkezik.
  • Az adatbázis terhelésének és költségeinek csökkenése, mivel a gyorsítótárazásnak köszönhetően kevesebb adatbázis-lekérdezésre van szükség, és csökken az adatbázis-példányok szükséges kapacitásnál nagyobb méretűre történő kiépítésének terhe.
  • Kiszámíthatóbb átviteli sebesség, mivel a gyorsítótár sok adatbázishoz képest nagyon nagy kérésmennyiséget képes kezelni.
  • A kiugró adatforgalom zökkenőmentesebb kezelése, mivel a memóriabeli gyorsítótárak csökkenthetik a késést a nagy átviteli sebességgel járó időszakokban.

A számítási és tárolási erőforrások jobb kihasználása

A gyorsítótárazás segít csökkenteni az ismétlődő munkát. Az ismétlődően olvasott vagy költségesen előállítható adatokat csak egyszer kell tárolni, majd ismét felhasználhatók. Ha egy művelet bonyolult számítást végez, vagy adatokat alakít át, az eredmény gyorsítótárazása csökkenti az ismétlődő számítások mennyiségét a későbbi kérések esetén.

Gyakori „jó gyorsítótár” jelöltek
  • Ritkán változó adatok (például termék- és díjszabási információk).
  • Megosztott statikus erőforrások, amelyek létrehozása költséges.
  • Az ismétlődően kiszámított műveletek eredményei.

Valós alkalmazások (ahol a gyorsítótárazás megjelenik)

Webhelyek: Gyorsabb lapbetöltés és kevesebb adatátvitel

Számos webhely gyorsítótárazza a lapkimenetet (például HTML- és ügyféloldali szkripteket), így a kiszolgáló a gyorsítótárazott kimenetet adja vissza a lapkód minden egyes újrafuttatása helyett. A gyorsítótárazás a webes multimédiás forgatókönyveket is támogatja webes gyorsítótárak és hálózati gyorsítótárazás, például tartalomkézbesítési hálózatok (CDN-ek) használatával.

Webhelyek jellemző használati módjai
  • A teljes oldal kimenetének gyorsítótárazása az ismétlődő megtekintésekhez.
  • Statikus objektumok gyorsítótárazása hálózati/CDN-gyorsítótárazással.
Alkalmazások és API-k: Gyorsabb olvasás a megosztott adatokhoz

Az alkalmazások gyakran gyorsítótárban tárolják az adatok átmeneti részhalmazait a gyors lekérés érdekében, míg az elsődleges adatbázis megőrzi a teljes tartós adatkészletet. A feldolgozott adatok gyorsítótárazása és újbóli használata gyorsabban kiszolgálhatja a kéréseket, mint a szabványos adatbázis-lekérdezések.

Gyakori alkalmazásminták
  • Az ismétlődő adatbázis-hívások számának csökkentése érdekében gyorsítótárazza a gyakran olvasott referenciaadatokat (például a díjszabást).
  • Gyorsítótárazza a kiszámított eredményeket a költséges munka ismétlésének elkerülése érdekében.
Kiszolgálók és szolgáltatások: Az olvasások skálázása és a csúcsok kisimítása

A csapatok gyakran adnak hozzá egy vagy több gyorsítótárréteget az átviteli teljesítmény és a késés javítására, a gyakori lekérdezéseket a gyorsítótárból kiszolgálva és csökkentve az adatbázis-terhelést. A memóriabeli gyorsítótárak hasznosak lehetnek a használat hirtelen megugrásakor és az átviteli igény növekedésekor, mivel ezekben az időszakokban csökkentik a késést.

Hol segít ez a legtöbbet
  • Olyan, nagy olvasási forgalmú végpontok, ahol ugyanazokat a kulcsokat gyakran kérik le.
  • Olyan rendszerek, amelyek időszakos forgalomnövekedést tapasztalnak.
Üzleti rendszerek: Munkamenet-állapot és megosztott működési adatok

A gyorsítótárazást gyakran használják nagy mennyiségű rövid élettartamú munkamenet-adat (például felhasználói bevitel vagy személyre szabási beállítások) tárolására egy memóriabeli tárolóban. Egyes csapatok a munkamenet-állapotot is a gyorsítótárban tárolják, így az állapotalapú alkalmazások állapot nélküli állapotban tarthatják az alkalmazásréteget. Az operációs rendszerek esetében a ritkán változó adatok – például a termék- és díjszabási információk – gyakori célpontjai a gyorsítótárazásnak.

Üzleti számítási feladatokhoz hozzárendelhető példák
  • Munkamenet-adatok webes és mobilalkalmazásokhoz (rövid élettartamú, nagy mennyiségű).
  • Gyakran olvasott működési referenciaadatok (díjszabás, megosztott erőforrások).

Gyorsítótártípusok

A gyorsítótárazás az alkalmazás és az adatok között több rétegben is megjelenik, beleértve a kliensoldali és a kiszolgáló oldali megközelítéseket is.

Böngésző gyorsítótára (ügyféloldali)

A böngésző gyorsítótára tárolja a statikus erőforrások másolatait a felhasználó eszközén, így az ismétlődő látogatások újra felhasználhatják ezeket a fájlokat ahelyett, hogy újra letöltenék őket.

Gyakori használati esetek
  • Statikus webhelyeszközök, például képek, CSS-fájlok és JavaScript-fájlok.
  • A forráskiszolgálóra irányuló adatváltások számának csökkentése a korábban lehívott erőforrások esetében.

Kiszolgáló oldali gyorsítótár

A kiszolgálóoldali gyorsítótárazás az üzleti szolgáltatásokat távolról futtató folyamatokban történik, nem pedig a végfelhasználó eszközén. A kiszolgáló oldali gyorsítótárak gyakran privátak (helyiről egy alkalmazáspéldányra) vagy meg vannak osztva (sok alkalmazáspéldány használja).

Gyakori használati esetek
  • Privát, memóriabeli gyorsítótár egyetlen folyamaton belül, a statikus adatok kisebb mennyiségének érdekében.
  • Megosztott gyorsítótár-szolgáltatás, hogy több alkalmazáspéldány olvassa ugyanazokat a gyorsítótárazott értékeket, és elkerülje a „különböző verziók” használatát a példányokban.
  • Gyakran olvasott, de ritkán módosított adatok (például termék- és díjszabási referenciaadatok).

CDN-gyorsítótár

A CDN a végfelhasználókhoz közelebb gyorsítótárazza a peremhálózati kiszolgálók tartalmát, így a kérések nem mindig jutnak vissza a forráshoz. A böngésző gyorsítótárával (amely egy felhasználóra vonatkozik) ellentétben a CDN-gyorsítótár megosztott: egy felhasználó kérése alapján betöltődhet az a tartalom, amelyet később egy másik felhasználó kap meg.

Gyakori használati esetek
  • Gyorsítótárazható tartalom megosztott kézbesítése peremhálózati helyekről a forráskérések csökkentése érdekében.
  • Statikus erőforrások, amelyek kihasználják a felhasználók közelében való kiszolgálás előnyeit (ugyanolyan típusú eszközböngészők gyorsítótárazása, de a felhasználók között megosztva).

CPU-/memória-gyorsítótár

A gyorsítótárazás nem csupán felhőalapú számítási minta—hardver- és memóriarétegek is használják.

A CPU-gyorsítótár egy kis, gyors memóriaterület a processzor közelében (vagy azon), amely a gyakran használt adatok és utasítások másolatait tárolja, hogy csökkentse a főmemóriára való várakozási időt.

A memóriabeli (in-memory) gyorsítótár a legegyszerűbb szoftveres gyorsítótártípus: Egyetlen folyamat címtartományában tárolt, és az adott folyamat által közvetlenül elérhető memóriabeli tároló.

Gyakori használati esetek
  • CPU-gyorsítótár: Ugyanannak az utasításnak vagy adatnak az ismételt elérése anélkül, hogy gyakran a főmemóriához kellene fordulni.
  • Memóriabeli gyorsítótár: Egy futó szolgáltatáson belül kis mennyiségű, viszonylag statikus adat gyors olvasása.

Elosztott gyorsítótárazás

Az elosztott gyorsítótár több kiszolgálót is magában foglalhat, így a gyorsítótár mérete és a tranzakciókezelési kapacitás több gépre is kiterjedhet. Számos megosztott gyorsítótár-szolgáltatás kiszolgálófürtöt használ, és a gyorsítótárazott adatokat elosztja a fürtön; a gyorsítótár skálázása akár több kiszolgáló hozzáadásával is elvégezhető. Egyes elosztott rendszerek is réteggyorsítótárakat helyeznek el, így az egyik rétegből hiányzik egy felsőbb rétegbeli szolgáltató, majd az eredményt helyileg tárolja a következő kérelemhez.

Gyakori használati esetek
  • Megosztott gyorsítótárréteg több alkalmazáspéldányhoz és géphez.
  • Olyan számítási feladatok, amelyek egyetlen gazdagépet meghaladó gyorsítótár-kapacitást és átviteli sebességet igényelnek.
  • Rétegezett gyorsítótár beállítások, amelyeknél a hiányzó adatokat a kiinduló szintről tölti be a rendszer, majd a későbbi lekérdezésekhez helyi másolatot tárol.

A gyorsítótárazás első lépései

Miért fontos a gyorsítótárazás?

A gyorsítótárazás közelebb hozza a gyakran használt adatokat ahhoz a helyhez, ahol használják őket, így javíthatja a válaszidőt, és segíthet a rendszernek több egyidejű kérést kezelni. Ezenkívül csökkentheti az eredeti adattárban fellépő konfliktusokat, például amikor egy adatbázis csatlakozási kapacitása korlátozott.

Elosztott alkalmazásokban a gyorsítótárazás gyakran több helyen is történik — az ügyféloldalon (például egy böngészőben) és a kiszolgálóoldalon (egy alkalmazásban vagy megosztott gyorsítótár szolgáltatásban).

Gyakorlati módszer a kezdéshez

Kezdje kicsiben, és koncentráljon azokra az adatokra, amelyek a legtisztább eredményt adják:

  • A gyakran változó, lassan letölthető adatokat (például a referenciaadatokat) tárolja a gyorsítótárban.
  • Döntse el, hogy az adatok mikor kerülnek a gyorsítótárba:
    • Az első kérés után igény szerint, tehát csak a ténylegesen használt elemeket tárolja.
    • Indításkor töltsön be előre (kezdőérték) néhány elemet, ha tudja, hogy azokra már korán szükség lesz – miközben figyeli az eredeti adattár indítási terhelését.
  • Válasszon egy kezelhető mintát. A gyorsítótár-feltöltési minta gyakori, és útmutatása kiemeli, hogy a lejárat, a kiürítés és a konzisztencia milyen hatással van az eredményekre.

A gyorsítótárban tárolt adatok frissességének biztosítása (és a rendszer rugalmasságának fenntartása)

A gyorsítótárak általában az elsődleges tárolóból származó adatok másolatait tárolják, ezért a frissesség figyelmet igényel:

  • Lejárati házirendek használatával korlátozhatja, hogy az adatok mennyi ideig maradhatnak a gyorsítótárban a frissítés előtt.
  • Figyelje meg a kiürítési viselkedést, amikor a gyorsítótárak megtelnek (sok rendszer alapértelmezés szerint kizárja a legutóbb használt elemeket).
  • Ne tekintse a gyorsítótárat a kritikus adatok egyetlen tárolási helyének. A hiteles adatforrást tárolja egy állandó tárban, hogy a rendszer tovább működhessen, ha a gyorsítótár nem érhető el.
  • Készítsen elő egy tartalék útvonalat az eredeti adattárhoz arra az esetre, ha a gyorsítótár nem érhető el, és az olvasási műveletek során töltse fel újra az adatokat.

A gyorsítótárazás a modern rendszerek alapvető építőeleme, mivel számos architektúrához illeszkedik — az egyes szolgáltatásoktól az elosztott alkalmazásokig és a peremhálózati kézbesítésig. Ha olyan felhőszolgáltatót keres, amely felügyelt, memóriabeli gyorsítótárat kínál, fedezze fel az Azure-t.

színátmenetes háttér
Források

Erőforrások

Képzés
Azure-erőforrások
Ismerkedjen meg a legújabb fejlesztői technológiával, és tanuljon új készségeket.
Oktatás
Fejlesztői erőforrások diákoknak
Az új készségekkel elindíthatja a karrierjét, és pozitív hatással lehet a világra.
Események
Azure-események és -webináriumok
Új készségeket szerezhet, új technológiákat ismerhet meg, és a közösséggel is kapcsolatot tarthat – vegyen részt digitálisan vagy személyesen.
GYIK

Gyakori kérdések

  • A gyorsítótárazás gyors memóriában tárolja a gyakran használt adatokat, így az alkalmazások gyorsan, az elsődleges adatbázis elérése nélkül adhatnak vissza eredményeket. Ez csökkenti a késést és a háttérbeli terhelést, ami segít a rendszereknek több egyidejű kérést kezelni.
  • A gyorsítótárazás javítja a teljesítményt azáltal, hogy a gyors memóriából szolgálja ki a gyakran kért adatokat, ami csökkenti a késést, az adatbázis terhelését és költségeit, támogatja a nagy kérésmennyiséget, és segít kiugró forgalom esetén.
  • Az egyik példa a kimenet gyorsítótárazása—, amikor egy webkiszolgáló egy lap renderelt kimenetét (HTML- és ügyfélszkripteket) tárol a memóriában, majd ezt a gyorsítótárazott kimenetet a lapkód újrafuttatása helyett ismétlődő látogatások esetén biztosítja.
  • A gyorsítótár az adatok kisebb, ideiglenes részhalmazát tárolja a gyors elérés érdekében, míg egy adatbázis vagy tároló tárolja a teljes, tartós adathalmazt a hosszú távú megőrzés érdekében. Ha a gyorsítótárban tárolt adatok elvesznek, az adatbázisban továbbra is megmarad az állandó másolat; a gyorsítótárak nem arra szolgálnak, hogy a kritikus adatok hiteles tárolóhelyeként funkcionáljanak.