Sdílet prostřednictvím


Řešení potíží se ztrátou dat ve službě Azure Managed Redis

Tento článek vysvětluje, jak diagnostikovat skutečnou nebo vnímanou ztrátu dat, ke které může dojít ve službě Azure Managed Redis.

Poznámka:

Některé kroky pro řešení potíží v tomto průvodci zahrnují pokyny ke spuštění příkazů Redis a monitorování metrik výkonu. Další informace najdete v článcích v souvisejícím obsahu.

Částečná ztráta klíčů

Azure Managed Redis po uložení klíčů do paměti náhodně neodstraní klíče. Odebere klíče kvůli zásadám vypršení platnosti, zásadám vyřazení nebo příkazům pro explicitní odstranění klíče. Tyto příkazy spusťte pomocí rozhraní příkazového řádku. Klíče zapsané do primárního uzlu v instanci Azure Managed Redis nemusí být na replice hned dostupné. Data se replikují z primární repliky asynchronně a neblokováním.

Pokud klíče z mezipaměti zmizí, zkontrolujte následující možné příčiny:

Příčina Popis
Vypršení platnosti klíče Klíče se odeberou kvůli vypršení časových limitů nastavených na nich.
Vyřazení klíče Klíče se odeberou, když je nedostatek paměti.
Odstranění klíče Klienti odeberou klíče spuštěním explicitních příkazů pro odstranění.
Asynchronní replikace Klíče nejsou v replice dostupné kvůli zpoždění replikace dat.

Vypršení platnosti klíče

Azure Managed Redis odebere klíč automaticky při vypršení časového limitu pro tento klíč. Další informace o vypršení platnosti klíče Redis najdete v dokumentaci k příkazu EXPIRE . Hodnoty časového limitu můžete nastavit také pomocí příkazů SET, SETEX, GETSET a dalších příkazů *STORE .

Pokud chcete zjistit, kolik klíčů vypršelo, použijte příkaz INFO . V Stats části se zobrazuje celkový počet klíčů, jejichž platnost vypršela. V Keyspace části najdete další informace o počtu klíčů s časovými limity a průměrné hodnotě časového limitu.


# Stats

expired_keys:46583

# Keyspace

db0:keys=3450,expires=2,avg_ttl=91861015336

Zkontrolujte diagnostické metriky vaší mezipaměti a zjistěte, jestli nedošlo k korelaci mezi chybějícím klíčem a špičkou vyřazovaných klíčů.

Vyřazení klíče

Azure Managed Redis potřebuje k ukládání dat paměťový prostor. Odebere klíče, aby se v případě potřeby uvolnila paměť. Když se hodnoty used_memory nebo used_memory_rss v příkazu INFO blíží nakonfigurovanému nastavení maxmemory, Azure Managed Redis začne vyřazovat klíče z paměti na základě zásad mezipaměti.

Pomocí příkazu INFO monitorujte počet vyřazených klíčů:

# Stats

evicted_keys:13224

Odstranění klíče

Klienti Redis spustí příkaz DEL nebo HDEL , který odebere klíče ze spravovaného Redis Azure. Pomocí příkazu INFO můžete sledovat počet operací odstranění. Pokud se příkazy DEL nebo HDEL spustily, jsou uvedené v Commandstats části.

# Commandstats

cmdstat_del:calls=2,usec=90,usec_per_call=45.00

cmdstat_hdel:calls=1,usec=47,usec_per_call=47.00

Asynchronní replikace

Když povolíte vysokou dostupnost ve službě Azure Managed Redis, služba vytvoří primární uzel a aspoň jednu repliku. Systém kopíruje data z primární repliky asynchronně pomocí procesu na pozadí. Další podrobnosti najdete v dokumentaci k replikaci Redis .

Vzhledem k tomu, že replikace není okamžitá, může dojít k částečné ztrátě dat, pokud klienti zapisují do Redis často. Pokud například primární uzel selže poté, co klient zapíše klíč, ale před procesem na pozadí ho replikuje, klíč se ztratí, když se replika stane novou primární.

Větší nebo úplná ztráta klíčů

Pokud většina klíčů z mezipaměti zmizí, zkontrolujte tyto možné příčiny:

Příčina Popis
Vyprazdňování kláves Někdo klíče vymazal ručně.
Selhání instance Redis Server Redis není k dispozici.

Vyprazdňování kláves

Klienti mohou volat příkaz FLUSHDB nebo FLUSHALL , který odebere všechny klíče z instance Redis. Pokud chcete zkontrolovat, jestli jsou klíče vyprázdněné, použijte příkaz INFO . Tato Commandstats část ukazuje, jestli se spustí některý z FLUSH příkazů:

# Commandstats

cmdstat_flushall:calls=2,usec=112,usec_per_call=56.00

cmdstat_flushdb:calls=1,usec=110,usec_per_call=52.00

Selhání instance Redis

Redis je úložiště dat v paměti. Data zůstávají na fyzických nebo virtuálních počítačích, které hostují mezipaměť Redis. Azure Managed Redis Cache nabízí vysokou odolnost proti ztrátě dat tím, že ve výchozím nastavení poskytuje odolné mezipaměti zóny. Pokud primární horizontální oddíl v této mezipaměti selže, horizontální oddíl repliky automaticky převezme data. Tyto virtuální počítače jsou v samostatných doménách pro chyby a aktualizace, což minimalizuje pravděpodobnost, že se oba stanou nedostupnými ve stejnou dobu. Pokud dojde k výpadku velkého datového centra, virtuální počítače se stále můžou pohromadě snížit. V těchto výjimečných případech ztratíte svá data.

Používejte trvalost dat Redis a geografickou replikaci k lepší ochraně dat před těmito selháními infrastruktury.