Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk az Azure Cache for Redisben előforduló részleges vagy teljes adatvesztés diagnosztizálását ismerteti.
Fontos
Az Azure Cache for Redis bejelentette az összes termékváltozat kivonási ütemtervét. Javasoljuk, hogy a meglévő Azure Cache for Redis-példányokat mihamarabb áthelyezhesse az Azure Managed Redisbe .
További részletek a nyugdíjba vonulásról:
Részleges kulcsvesztés
Az Azure Cache for Redis nem törli véletlenszerűen a kulcsokat a memóriában való tárolás után, de eltávolítja a kulcsokat a lejárati szabályzatokra, a kiürítési szabályzatokra és a explicit kulcstörlési parancsokra válaszul. Ezeket a parancsokat a konzolon vagy a Redis parancssori felületén futtathatja.
Előfordulhat, hogy egy Prémium vagy Standard Azure Redis-példány elsődleges csomópontjára írt kulcsok nem érhetők el azonnal a replikán. Az adatok replikálása az elsődlegesről a replikára aszinkron és nem tiltó módon történik.
Ha egyes kulcsok eltűnnek a gyorsítótárból, ellenőrizze az alábbi lehetséges okokat:
| Ok | Leírás |
|---|---|
| Kulcs lejárata | Eltávolították a kulcsokat az időkorlátok miatt, amelyek be lettek állítva rájuk. |
| Kulcs kilakoltatás | A kulcsok memóriaterhelés alatt el lettek távolítva. |
| Kulcs törlése | A kulcsokat explicit törlési parancsok távolították el. |
| Aszinkron replikáció | A kulcsok nem voltak elérhetők replikán az adatreplikációs késések miatt. |
Kulcs lejárata
Az Azure Cache for Redis automatikusan eltávolít egy kulcsot, ha a kulcshoz időtúllépés van rendelve, és ez az időszak lejárt. A Redis-kulcs lejáratával kapcsolatos további információkért tekintse meg a Redis EXPIRE parancs dokumentációját. Az időtúllépési értékek a SET, a SETEX, a GETSET és más *STORE parancsok használatával is beállíthatók.
Ha statisztikákat szeretne kapni arról, hogy hány kulcs járt le, használja az INFO parancsot. A Stats szakasz a lejárt kulcsok teljes számát mutatja. A Keyspace szakasz további információt nyújt az időtúllépéssel rendelkező kulcsok számáról és az átlagos időtúllépési értékről.
# Stats
expired_keys:46583
# Keyspace
db0:keys=3450,expires=2,avg_ttl=91861015336
Kulcs kizárása
Az Azure Cache for Redis memóriaterületet igényel az adatok tárolásához és a kulcsok kiürítéséhez, hogy szükség esetén felszabadítsa a rendelkezésre álló memóriát. Amikor az used_memory vagy used_memory_rss értékek megközelítik a konfigurált maxmemory beállítást, az Azure Redis gyorsítótárszabályzat alapján elkezdi kiüríteni a kulcsokat a memóriából.
A kiürített kulcsok számát az INFO paranccsal figyelheti.
# Stats
evicted_keys:13224
Kulcs törlése
A Redis-ügyfelek kiadhatják a Redis DEL - vagy HDEL-parancsokat , hogy explicit módon eltávolítsák a kulcsokat az Azure Redisből. A törlési műveletek számát az INFO paranccsal követheti nyomon. Ha DEL vagy HDEL parancsokat hívtak meg, azok a Commandstats szakaszban szerepelnek.
# Commandstats
cmdstat_del:calls=2,usec=90,usec_per_call=45.00
cmdstat_hdel:calls=1,usec=47,usec_per_call=47.00
Aszinkron replikáció
A Standard vagy Prémium szintű Azure Cache for Redis-példányok elsődleges csomóponttal és legalább egy replikával vannak konfigurálva. A rendszer egy háttérfolyamat használatával aszinkron módon másolja az adatokat az elsődlegesről egy replikára.
A Redis-replikáció a Redis webhelyén leírja, hogyan működik a Redis-adatreplikálás általában. Olyan helyzetekben, amikor az ügyfelek gyakran írnak a Redisbe, részleges adatvesztés fordulhat elő, mert a replikáció nem azonnali.
Ha például az elsődleges lemegy, miután egy ügyfél egy kulcsot ír hozzá, de mielőtt a háttérfolyamat elküldené a kulcsot a replikának, a kulcs elveszik, amikor a replika átveszi az új elsődleges kulcsot.
Teljes kulcsvesztés
Ha a legtöbb vagy az összes kulcs eltűnik a gyorsítótárból, ellenőrizze az alábbi lehetséges okokat:
| Ok | Leírás |
|---|---|
| Kulcs ürítése | A kulcsokat manuálisan törölték. |
| Helytelen adatbázis-kijelölés | Az Azure Redis egy nem hibás adatbázis használatára van beállítva. |
| Redis-példány hibája | A Redis-kiszolgáló nem érhető el. |
Kulcs törlése
Az Azure Redis-ügyfelek meghívhatják a Redis FLUSHDB parancsot egy adatbázis összes kulcsának eltávolításához, vagy a FLUSHALL parancsot, hogy eltávolítsák az összes kulcsot a Redis-gyorsítótárban lévő összes adatbázisból. Az INFO parancs használatával ellenőrizheti, hogy a kulcsok kiürítődtek-e. A Commandstats szakasz bemutatja, hogy valamelyik FLUSH parancsot meghívták-e.
# Commandstats
cmdstat_flushall:calls=2,usec=112,usec_per_call=56.00
cmdstat_flushdb:calls=1,usec=110,usec_per_call=52.00
Helytelen adatbázis-kijelölés
Minden adatbázis egy logikailag különálló egység, és eltérő adathalmazt tartalmaz. Az Azure Cache for Redis alapértelmezés szerint az adatbázist db0 használja. Ha másik adatbázisra vált, például db1 megpróbál kulcsokat olvasni belőle, az Azure Redis nem találja őket. A Redis SELECT paranccsal kulcsokat kereshet más elérhető adatbázisokban.
Redis-példány hibája
A Redis a Redis-gyorsítótárat futtató fizikai vagy virtuális gépeken (virtuális gépeken) tárolja az adatokat a memóriában. Egy Alapszint Azure Cache for Redis-példány csak egyetlen virtuális gépen fut. Ha a virtuális gép leáll, a gyorsítótárban tárolt összes adat elveszik.
A standard és a prémium szintű gyorsítótárak nagyobb rugalmasságot biztosítanak az adatvesztés ellen két virtuális gép replikált konfigurációban való használatával. Ha egy ilyen gyorsítótár elsődleges csomópontja meghibásodik, a replikacsomópont automatikusan átveszi az adatok kiszolgálását.
Ezek a virtuális gépek különálló tartományokban találhatók a hibák és frissítések esetében, hogy minimalizálják annak esélyét, hogy mindkét virtuális gép egyszerre elérhetetlenné váljon. Ha azonban jelentős adatközpont-kimaradás történik, mindkét virtuális gép leállhat. Ezekben a ritka esetekben az adatok elvesznek. Fontolja meg az adatmegőrzés és a georeplikálás használatát az infrastruktúra hibái elleni adatvédelem javítása érdekében.