Trace Id is missing
Ugrás a tartalomra

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

A fejlesztők és az informatikai szakemberek gyorsítótárazást használhatnak ahhoz, hogy a kulcs-érték típusú adatokat gyorsabban tárolhassák az ideiglenes memóriában, mert így kevesebb erőfeszítés szükséges, mint ha az adatokat hagyományos adattárakban tárolnák. A gyorsítótárazás a több technológiát használó helyzetekben is hasznos, például a számítógépes gyorsítótárazásnál RAM használatával, a hálózati gyorsítótárazásnál tartalomkézbesítési hálózaton, webes gyorsítótárazásnál multimédiás adatokhoz, vagy felhőalapú gyorsítótárazásnál, melynek során a felhőalapú alkalmazásokat tehetjük rugalmasabbá. A fejlesztők gyakran úgy tervezik meg az alkalmazásokat, hogy a feldolgozott adatok gyorsítótárazva legyenek, majd azokat arra a célra használják fel, hogy gyorsabban szolgálják ki a kéréseket a hagyományos adatbázis-lekérdezéseknél.

A gyorsítótárazással csökkenthetők az adatbázis költségei, a legtöbb adatbázis által elérhetőnél magasabb átviteli sebességet és kisebb késést lehet vele elérni, és jelentősen javítható vele a felhőalapú és a webalkalmazások teljesítménye is.

Hogyan működik az adatbázisok gyorsítótárazása?

A fejlesztők az elsődleges adatbázist egy adatbázis-gyorsítótárral egészíthetik ki, amelyet elhelyezhetnek az adatbázisban vagy az alkalmazásban, vagy beállíthatják azt egy különálló rétegként is. Noha a nagy méretű, tartós és teljes adathalmazok tárolására általában hagyományos adatbázisokat használnak, az átmeneti adatkészletek tárolására a gyors lekérés érdekében inkább gyorsítótárakat alkalmaznak.

A gyorsítótárazást bármilyen típusú adattárral használhatja, beleértve a NoSQL-adatbázisokat, valamint a relációs adatbázisokat, például az SQL Servert, a MySQL-tvagy a MariaDB-t. A gyorsítótárazás számos adatplatformmal, például az Azure Database for PostgreSQL-lel, az Azure SQL Database-zelvagy az Azure SQL Managed Instance-szelis jól használható. Javasoljuk, hogy az adatarchitektúra konfigurálása előtt vizsgálja meg, hogy milyen típusú adattár felel meg a legjobban az igényeinek. Például mindenképp érdemes megtudni, mit is jelent a PostgreSQL, mielőtt használatba venné azt a relációs és a strukturálatlan adatok tárolásához.

Mik a gyorsítótárrétegek előnyei, és mi az a Redis?

A fejlesztők gyorsítótárrétegeknek nevezett többszintű gyorsítótárakat használnak ahhoz, hogy különböző típusú adatokat tároljanak különböző gyorsítótárakban a szükségleteknek megfelelően. Ha hozzáad egy vagy több gyorsítótárréteget, azzal jelentősen növelheti az adatréteg átviteli sebességét és a teljesítménybeli késéseket.

A Redis egy népszerű, nyílt forráskódú, memóriában tárolt adatstruktúra, amely nagy teljesítményű gyorsítótárrétegek és egyéb adattárak felépítésére használható. Egy nemrégiben megjelent tanulmány azt mutatta ki, hogy ha egy mintaalkalmazáshoz hozzáadjuk az Azure Cache for Redist, azzal az átviteli sebességet több mint 800 százalékkal növelhetjük, a késési teljesítmény pedig 1000 százalékkal javul1.

A gyorsítótárak az adatrétegek teljes bekerülési költségét is csökkenthetik. Ha gyorsítótárak használatával szolgálja ki a leggyakoribb lekérdezéseket, és így csökkenti az adatbázis terhelését, az adatbázispéldányok többletkiépítésének szükségességét is csökkentheti, amivel jelentős költség takarítható meg, és csökkenthető a teljes bekerülési költség is.

A gyorsítótárazás típusai

A gyorsítótárazási stratégia attól függ, hogy az alkalmazás hogyan olvassa és írja az adatokat. Az alkalmazás sokszor végez írási műveletet, vagy az adatokat csak egyszer kell írni, és gyakran olvasni? A visszaadott adatok mindig egyediek? A különböző adatelérési minták hatással vannak a gyorsítótár konfigurálására is. Gyakori gyorsítótárazási típusok például az oldalgyorsítótár, a párhuzamos olvasás/párhuzamos írás és a háttérírás/visszaírás.

Cache-aside

A nagy terhelésű számítási feladatokat használó alkalmazások esetén a fejlesztők gyakran használják a cache-aside nevű programozási mintát, amit "oldalgyorsítótárnak" is neveznek. Az oldalgyorsítótárat az alkalmazáson kívülre helyezik, amely aztán csatlakozhat a gyorsítótárhoz az adatok lekérdezéséhez vagy lekéréséhez, de közvetlenül az adatbázishoz is csatlakozhat, ha az adat nem található meg a gyorsítótárban. Ahogy az alkalmazás lekéri az adatokat, azokat a gyorsítótárba másolja a későbbi lekérdezésekhez.

Az oldalgyorsítótár használatával javíthatja az alkalmazás teljesítményét, fenntarthatja a gyorsítótár és az adattár közötti konzisztenciát, és megőrizheti az adatok naprakészségét a gyorsítótárban.

Párhuzamos olvasási/párhuzamos írási gyorsítótár

A párhuzamos olvasási gyorsítótárak fenntartják saját naprakészségüket, míg a párhuzamos írási gyorsítótárazásnál az alkalmazás az adatokat először a gyorsítótárba, majd az adatbázisba írja. Mindkét gyorsítótár összhangban van az adatbázissal, és az alkalmazás ezeket kezeli fő adattárként.

A párhuzamos olvasási gyorsítótárak egyszerűbbé teszik azokat az alkalmazásokat, amelyeknél ugyanazokat az adatokat kell lekérni újra és újra, de a gyorsítótár ennél bonyolultabb, míg a kétlépéses párhuzamos írási folyamat késést eredményezhet. A fejlesztők a két eljárás kombinálásával gondoskodnak a gyorsítótár és az adatbázis közötti adatkonzisztenciáról, csökkentik a párhuzamos írási gyorsítótár-késést, és egyszerűbbé teszik a párhuzamos olvasási gyorsítótár frissítését.

A párhuzamos olvasási/párhuzamos írási gyorsítótárazással a fejlesztők leegyszerűsíthetik az alkalmazáskódot, növelhetik a gyorsítótár skálázhatóságát, és minimálisra csökkenthetik az adatbázis terhelését is.

Háttérírási/háttérolvasási gyorsítótár

Ebben a forgatókönyvben az alkalmazás adatokat ír a gyorsítótárba, amit a rendszer azonnal nyugtáz, majd maga a gyorsítótár írja vissza az adatokat az adatbázisba a háttérben. A háttérírási gyorsítótárakat visszaírási gyorsítótáraknak is nevezik, és ezek a nagy írási terhelésű számítási feladatokhoz a legjobbak. Javítják az írási teljesítményt, mivel az alkalmazásnak nem kell megvárni az írás befejezését, mielőtt továbblépne a következő feladatra.

Elosztott gyorsítótár és munkamenet-tároló

Az elosztott gyorsítótárakat sokan összetévesztik a munkamenet-tárolással. Ezek hasonlóak ugyan, de a követelményeik és a céljaik is eltérőek. A munkamenetet használó alkalmazásokban, például a webalkalmazásokban, a fejlesztők ahelyett, hogy elosztott gyorsítótárat használnak az adatbázis kiegészítésére, inkább munkamenet-tárolókat (azaz ideiglenes adattárakat) hoznak létre a felhasználói rétegben a profilokhoz, az üzenetekhez és más felhasználói adatokhoz.

Mit jelent a munkamenet-tároló?

A munkamenetet használó alkalmazások nyomon követik azokat a felhasználói műveleteket, amelyeket az alkalmazásba való bejelentkezést követően végeznek el. Ha a felhasználó kijelentkezése után is meg szeretnénk tartani az adatokat, azokat eltárolhatjuk egy munkamenet-tárolóban, amivel javítható a munkamenet-kezelés, csökkentők a költségek, és az alkalmazás teljesítménye is gyorsabb lesz.

Miben különbözik a munkamenet-tároló az adatbázisok gyorsítótárazástól?

A munkamenet-tárolókban az adatok nincsenek megosztva a különböző felhasználók között, a gyorsítótárazásnál azonban a különböző felhasználók elérhetik ugyanazt a gyorsítótárat. A fejlesztők a gyorsítótárazást az adatbázis vagy a tárolópéldány teljesítményének javítására használják, a munkamenet-tárolókat azonban az alkalmazás teljesítményének fokozására használják úgy, hogy adatokat írnak a memóriabeli tárolóba, mert így nincs szükség adatbázis-hozzáférésre.

A munkamenet-tárolóba írt adatok általában rövid élettartamúak, míg az elsődleges adatbázissal gyorsítótárazott adatokat általában sokkal hosszabb ideig őrizzük meg. A munkamenet-tárolókhoz replikáció, magas rendelkezésre állás és adatmegőrzés szükséges, hogy a tranzakciós adatok ne vesznek el, és hogy a felhasználók továbbra is aktívak maradjanak. Ha azonban egy oldalgyorsítótár adatai elvesznek, az állandó adatbázisban mindig lesz egy másolat.

A gyorsítótárazás előnyei

Az alkalmazásteljesítmény javítása

A memóriabeli gyorsítótárból sokkal gyorsabban lehet kiolvasni az adatokat, mint ha az adatokat egy lemezes adattárból érnénk el. Az adatokhoz való gyorsabb hozzáféréssel együtt pedig az alkalmazás általános felhasználói élménye is jelentősen javul.

Az adatbázis-használat és a költségek csökkentése

A gyorsítótárazás kevesebb adatbázis-lekérdezést eredményez, javítja a teljesítményt és csökkenti a költségeket, hiszen így kevesebbszer van szükség az adatbázis infrastruktúrájának méretezésére, és így az átviteli sebességért fizetendő díjak is csökkennek.

Méretezhetőség és kiszámítható teljesítmény

Egy gyorsítótárpéldány másodpercenként több millió kérést képes kezelni, és ezzel olyan szintű átviteli sebességet és méretezhetőséget kínál, amely az adatbázisok esetén nem lenne elérhető. A gyorsítótárazással a rugalmasság is növekszik, legyen szó az alkalmazások vagy az adattárak horizontális vagy vertikális skálázásról. Az alkalmazás így lehetővé teszi, hogy egyszerre sok felhasználó férjen hozzá ugyanazokhoz a fájlokhoz anélkül, hogy ez túlságosan megterhelné a háttérbeli adatbázisokat. Ha pedig egy alkalmazásnál sokszor jelentkezik kiugró terhelés akár a felhasználást, akár az átviteli sebességet tekintve, a memóriabeli gyorsítótárakkal csökkenthető a késés.

Mire használják a gyorsítótárazást?

Kimeneti gyorsítótárazás

A kimeneti gyorsítótárazás segít növelni a webhelyek teljesítményét, mivel eltárolja az oldalak teljes forráskódját, például azokat a HTML-kódokat és ügyféloldali szkripteket, amelyeket a kiszolgáló a böngészőknek küld megjelenítéshez. Minden alkalommal, amikor egy felhasználó megtekinti az oldalt, a kiszolgáló gyorsítótárazza a kimeneti kódot az alkalmazás memóriájában. Ez lehetővé teszi, hogy az alkalmazás anélkül szolgálja ki a kéréseket, hogy lapkódot kellene futtatnia, vagy más kiszolgálókkal kellene kommunikálnia.

Adat-gyorsítótárazás és adatbázis-gyorsítótárazás

Az adatbázis sebessége és az átviteli sebesség kulcsfontosságú tényező az alkalmazások teljesítményében. Az adatbázis-gyorsítótárazást akkor használják, ha olyan adatokat kell elérni, amelyek nem változnak gyakran – ilyenek például a díjszabási vagy a leltáradatok. Segítségével a webhelyek és az alkalmazások gyorsabban tölthetik be az adatokat, miközben az átviteli sebesség is növekszik, és csökken a háttéradatbázisokból származó adatoknál az adatlekérési késés.

Felhasználói munkamenet-adatok tárolása

Az alkalmazás felhasználói gyakran generálnak olyan adatokat, amelyeket rövid ideig szükséges tárolni. Az olyan memóriabeli adattárak, mint a Redis, tökéletesek nagy mennyiségű munkamenet-adatok, például felhasználói bevitelek, bevásárlókocsi-adatok vagy személyes beállítások hatékony és megbízható tárolására, és ez alacsonyabb költséggel is jár, mint a tárhely vagy az adatbázisok.

Üzenetközvetítők és közzétételi/előfizetési architektúrák

A felhőalapú alkalmazásoknak gyakran kell adatokat átvinniük a szolgáltatások között, és a gyorsítótárazás használatával olyan közzétételi/előfizetési vagy üzenetközvetítő architektúrákat lehet megvalósítani, amelyek csökkentik a késést, és felgyorsítják az adatkezelést.

Alkalmazások és API-k

A böngészőkhöz hasonlóan az alkalmazások is mentik a fontos fájlokat és adatokat, hogy szükség esetén gyorsan újra betölthessék az adatokat. A gyorsítótárazott API-válaszok csökkentik az alkalmazáskiszolgálók és az adatbázisok terhelését, ami gyorsabb válaszidőt és jobb teljesítményt biztosít.

[1] A teljesítménnyel kapcsolatos állítások alapja egy Microsoft által rendelt és a GigaOm által 2020 októberében elvégzett tanulmány. A tanulmány egy Azure-adatbázist használó tesztalkalmazás gyorsítótárazási megoldásként implementált Azure Cache for Redisszel és anélkül nyújtott teljesítményét hasonlította össze. A tanulmány adatbázis-összetevőjeként az Azure SQL Database-t és az Azure Database for PostgreSQL-t használták. Az Azure SQL Database egy 2 virtuális magos, 5. generációs általános célú példányát és az Azure Database for PostgreSQL egy 2 virtuális magos általános célú példányát használták az Azure Cache for Redis egy 6 GB-os, P1 Premium példányával. Ezeket az eredményeket az Azure SQL Database 8, 16, 24 és 32 virtuális magos általános célú Gen5 általános célú-példányával, valamint 8, 16, 24 és 32 virtuális magos általános célú példányokkal hasonlította össze Azure Database for PostgreSQL-lel az Azure Cache for Redis nélkül. A mért adatok forrása a GigaOm Web Application Database Load Test (webalkalmazási adatbázis terheléses tesztje), amely egy egyre több HTTP-kéréssel megterhelt gyakori webalkalmazást és háttéradatbázist szimulál. A tényleges eredmények konfigurációtól és régiótól függően változhatnak. Olvassa el a teljes tanulmányt.

Ingyenes fiók

Próbálja ki az Azure felhőalapú számítási szolgáltatásait akár 30 napig ingyenesen.

Használatalapú fizetés

Az első lépéseket használatalapú fizetéses díjszabással teheti meg. Nincs előzetes kötelezettségvállalás – bármikor lemondható.

Adjon hozzá egy gyors gyorsítótárazó réteget az alkalmazáshoz egy teljes körűen felügyelt Redis-szolgáltatással. Ismerje meg az Azure Cache for Redis használatának első lépéseit.

Ha rugalmas, fájlalapú gyorsítótárazást szeretne futtatni nagy teljesítményű alkalmazásokhoz, ismerkedjen meg az Azure HPC Cache-sel.