memória gyorsítótár (gyakran egyszerűen gyorsítótárazásnak nevezik) egy olyan technika, amelyben számítógépes alkalmazások ideiglenesen tárolja az adatokat a számítógép fő memóriájában (azaz véletlen hozzáférésű memória, vagy RAM) az adatok gyors visszakeresésének lehetővé tétele érdekében. Az ideiglenes tároláshoz használt RAM gyorsítótár néven ismert. Mivel a RAM elérése lényegesen gyorsabb, mint más adathordozók, például merevlemez-meghajtók vagy hálózatok elérése, a gyorsítótárazás elősegíti az alkalmazások gyorsabb futását az adatokhoz való gyorsabb hozzáférés miatt. A gyorsítótárazás különösen akkor hatékony, ha az alkalmazás közös mintát mutat, amelyben ismételten hozzáfér a korábban elért adatokhoz. A gyorsítótár hasznos olyan adatszámítások tárolására is, amelyek kiszámítása egyébként időigényes. A számítások gyorsítótárban történő tárolásával a rendszer időt takarít meg, elkerülve a számítás megismétlését.
hogyan működik a memória gyorsítótárazása?
a memória gyorsítótárazása úgy működik, hogy először félreteszi a RAM egy részét, amelyet gyorsítótárként kell használni. Amikor egy alkalmazás megpróbál adatokat olvasni, általában egy adattároló rendszerből, például egy adatbázisból, ellenőrzi, hogy a kívánt rekord már létezik-e a gyorsítótárban. Ha igen, akkor az alkalmazás beolvassa az adatokat a gyorsítótárból, így kiküszöbölve az adatbázishoz való lassabb hozzáférést. Ha a kívánt rekord nincs a gyorsítótárban, akkor az alkalmazás beolvassa a rekordot a forrásból. Amikor letölti ezeket az adatokat, az adatokat a gyorsítótárba is beírja, így amikor az alkalmazásnak a jövőben ugyanazokra az adatokra van szüksége, gyorsan megszerezheti azokat a gyorsítótárból.
mivel a gyorsítótár mérete korlátozott, végül néhány, a gyorsítótárban már szereplő adatot el kell távolítani, hogy helyet biztosítson az új adatoknak, amelyekhez az alkalmazás Legutóbb hozzáfért. Ez azt jelenti, hogy a gyorsítótárazási rendszernek szüksége van egy stratégiára, amelyen a rekordokat el kell távolítani, hogy helyet biztosítson. A stratégia az alkalmazás adathozzáférésének jellegétől függ, és általában megpróbálja eltávolítani azokat a rekordokat, amelyek várhatóan hamarosan nem lesznek elérhetők. Például egy legkevésbé használt (LRU) stratégia eltávolítja azt a rekordot, amelynek utolsó hozzáférése a gyorsítótár bármely más rekordja előtt volt. A feltételezés itt az, hogy ha hosszú idő telt el a rekord elérése óta, akkor valószínűleg hamarosan nem fogják újra elérni. Vagy másképp fogalmazva: a közelmúltban leggyakrabban használt rekordokat valószínűleg hamarosan újra felhasználják. A legkevésbé gyakran használt (lfu) stratégia magában foglalja az egyes rekordok hozzáféréseinek nyomon követését a gyorsítótárban, és eltávolítja a rekordot a legkevesebb hozzáféréssel. Az a feltételezés, hogy egy ritkán használt rekordot valószínűleg nem fognak hamarosan újra használni.
a gyorsítótárakkal kapcsolatos kihívás az, hogyan lehet minimalizálni a” gyorsítótár-hiányokat”, azaz., az alkalmazás megkísérelte beolvasni azokat a rekordokat, amelyek nincsenek a gyorsítótárban. Ha túl sok hiányzik, a gyorsítótár hatékonysága csökken. Egy olyan alkalmazás, amely csak új adatokat olvas, nem részesülne előnyben a gyorsítótárból,sőt, alacsonyabb teljesítményt mutatna a gyorsítótár ellenőrzésének extra munkája miatt, de nem találja meg a kívánt rekordot. Ennek a kihívásnak az egyik módja a nagyobb gyorsítótárak kihasználása. Ez gyakran nem praktikus egyetlen számítógépen, ezért az elosztott gyorsítótárak népszerű választás a nagyobb adatkészletekhez hozzáférő alkalmazások felgyorsításához. Az elosztott gyorsítótár egyesíti a fürtbe csatlakoztatott több számítógép RAM-ját, így nagyobb gyorsítótárat hozhat létre, amely további számítógépek hozzáadásával tovább növekedhet a fürthöz. Az olyan technológiák, mint a Hazelcast IMDG, elosztott klaszterként használhatók a nagyszabású alkalmazások felgyorsítására.
a gyorsítótárak másik kihívása az “elavult” adatok olvasásának kockázata, amelyben a gyorsítótárban lévő adatok nem tükrözik az alapul szolgáló forrás legfrissebb adatait. Gyakran ez a kockázat elfogadható kompromisszum az alkalmazás teljesítménye érdekében. Azokban az esetekben, amikor nem, az alkalmazás feladata, hogy frissítse az alapul szolgáló adatforrást, hogy frissítse a kérdéses rekordot a gyorsítótárban.
példa Használati esetekre
a memória gyorsítótárazásának egyik széles körű felhasználási esete az adatbázis-alkalmazások felgyorsítása, különösen azok, amelyek sok adatbázis-olvasást végeznek. Ha az adatbázis-olvasások egy részét a gyorsítótárból olvassa, az alkalmazások eltávolíthatják a gyakori adatbázis-hozzáférésekből eredő késést. Ez a használati eset általában olyan környezetben található, ahol nagy mennyiségű adathozzáférés látható, például egy nagy forgalmú webhelyen, amely dinamikus tartalmat tartalmaz Egy adatbázisból.
egy másik felhasználási eset magában foglalja a lekérdezés gyorsítását, amelyben az adatbázis komplex lekérdezésének eredményei a gyorsítótárban vannak tárolva. Az olyan műveleteket futtató összetett lekérdezések, mint a csoportosítás és a sorrend, jelentős időt vehetnek igénybe. Ha a lekérdezéseket többször futtatják, mint például a sok felhasználó által elérhető üzleti intelligencia (BI) irányítópult esetében, az eredmények gyorsítótárban történő tárolása nagyobb érzékenységet tesz lehetővé az irányítópultokon.
Kapcsolódó Témák
JCache / Java Gyorsítótár
Gyorsítótár Hiányzik
Hibernált Második Szintű Gyorsítótár
További Olvasmányok
Gyorsítótár Használati Eset
Adatbázis Gyorsítótár
Hazelcast Felhő
Gyorsítótár Készült Bootiful: Tavaszi Gyorsítótár + Hazelcast