Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.