Utveckling med Azure Managed Redis (förhandsversion)
Anslutningsresiliens och serverbelastning
När du utvecklar klientprogram bör du överväga relevanta metodtips för anslutningsresiliens och hantering av serverbelastning.
Överväg fler nycklar och mindre värden
Azure Managed Redis (förhandsversion) fungerar bäst med mindre värden. Om du vill sprida data över flera nycklar kan du överväga att dela upp större datasegment i mindre segment. Mer information om idealvärdesstorlek finns i den här artikeln.
Stor storlek på begäran eller svar
En stor begäran/ett stort svar kan orsaka timeouter. Anta till exempel att ditt timeout-värde som konfigurerats på klienten är 1 sekund. Programmet begär två nycklar (till exempel "A" och "B") samtidigt (med samma fysiska nätverksanslutning). De flesta klienter stöder pipelining av begäranden, där både begäranden "A" och "B" skickas en efter en utan att vänta på deras svar. Servern skickar tillbaka svaren i samma ordning. Om svaret "A" är stort kan det äta upp det mesta av tidsgränsen för senare begäranden.
I följande exempel skickas begäran "A" och "B" snabbt till servern. Servern börjar skicka svar "A" och "B" snabbt. På grund av dataöverföringstider måste svaret "B" vänta bakom svar "A" tidsgränsen även om servern svarade snabbt.
|-------- 1 Second Timeout (A)----------|
|-Request A-|
|-------- 1 Second Timeout (B) ----------|
|-Request B-|
|- Read Response A --------|
|- Read Response B-| (**TIMEOUT**)
Den här begäran/det här svaret är svår att mäta. Du kan instrumentera klientkoden för att spåra stora begäranden och svar.
Lösningar för stora svarsstorlekar varierar, men omfattar:
- Optimera programmet för ett stort antal små värden i stället för några få stora värden.
- Den bästa lösningen är att dela upp dina data i relaterade mindre värden.
- Se inlägget Vad är det idealiska värdestorleksintervallet för redis? Är 100 KB för stort? för mer information om varför mindre värden rekommenderas.
- Öka storleken på den virtuella datorn (VM) för att få högre bandbreddsfunktioner
- Mer bandbredd på den virtuella klient- eller serverdatorn kan minska dataöverföringstiderna för större svar.
- Jämför din aktuella nätverksanvändning på båda datorerna med gränserna för din aktuella VM-storlek. Mer bandbredd på bara servern eller bara på klienten kanske inte räcker.
- Öka antalet anslutningsobjekt som programmet använder.
- Använd en resursallokeringsmetod för att göra begäranden över olika anslutningsobjekt.
Använda pipelining
Försök att välja en Redis-klient som stöder Redis-pipelining. Pipelining hjälper till att effektivt använda nätverket och få bästa möjliga dataflöde.
Undvik dyra åtgärder
Vissa Redis-åtgärder, till exempel KOMMANDOT NYCKLAR , är dyra och bör undvikas. Några saker att tänka på kring tidskrävande kommandon finns i tidskrävande kommandon.
Välj en lämplig nivå
Azure Managed Redis erbjuder nivåerna Minnesoptimerad, Balanserad, Beräkningsoptimerad och FlashOptimerad. Mer information om hur du väljer en nivå finns här. Vi rekommenderar prestandatestning för att välja rätt nivå och verifiera anslutningsinställningar. Mer information finns i Prestandatestning.
Välj ett lämpligt tillgänglighetsläge
Azure Managed Redis erbjuder alternativet att aktivera eller inaktivera konfiguration med hög tillgänglighet. När läget för hög tillgänglighet är inaktiverat replikeras inte dina AMR-instanser och därför är redis-instansen otillgänglig under underhåll. Alla data i AMR-instansen går också förlorade i händelse av planerat eller oplanerat underhåll. Vi rekommenderar att du inaktiverar den höga tillgängligheten endast för dina utvecklings- eller testarbetsbelastningar. Prestanda för Redis-instanser med hög tillgänglighet kan också vara lägre på grund av bristen på datareplikering som är avgörande för att fördela belastningen mellan primär data- och replikdatashard.
Klienten i samma region som Redis-instansen
Leta upp din Redis-instans och ditt program i samma region. Att ansluta till en Redis i en annan region kan avsevärt öka svarstiden och minska tillförlitligheten.
Även om du kan ansluta utanför Azure rekommenderas det inte, särskilt inte när du använder Redis för att påskynda programmets eller databasens prestanda. Om du använder Redis-servern som ett nyckel-/värdearkiv kanske svarstiden inte är det primära problemet.
Förlita dig på värdnamn, inte offentlig IP-adress
Den offentliga IP-adress som tilldelats din AMR-instans kan ändras till följd av en skalningsåtgärd eller serverdelsförbättring. Vi rekommenderar att du förlitar dig på värdnamnet i stället för en explicit offentlig IP-adress.
Använda TLS-kryptering
Azure Managed Redis kräver TLS-krypterad kommunikation som standard. TLS-versionerna 1.2 och 1.3 stöds för närvarande. Om klientbiblioteket eller verktyget inte stöder TLS är det möjligt att aktivera okrypterade anslutningar.
Övervaka minnesanvändning, cpu-användningsstatistik, klientanslutningar och nätverksbandbredd
När du använder Azure Managed Redis-instansen i produktion rekommenderar vi att du anger aviseringar för måtten "Använt minne i procent", "CPU"- och "Anslutna klienter". Om dessa mått konsekvent överstiger 75 % bör du överväga att skala instansen till en större minnesnivå eller en bättre dataflödesnivå. Mer information finns i när du ska skala .
Överväg att aktivera datapersistence eller säkerhetskopiering av data
Redis är utformat för tillfälliga data som standard, vilket innebär att dina data i sällsynta fall kan gå förlorade på grund av olika omständigheter som underhåll eller avbrott. Om ditt program är känsligt för dataförlust rekommenderar vi att du aktiverar datapersistence eller regelbunden säkerhetskopiering av data med hjälp av dataexportåtgärden.
Funktionen för datapersistence är utformad för att automatiskt tillhandahålla en snabb återställningspunkt för data när ett cacheminne går ned. Snabbåterställningen möjliggörs genom att RDB- eller AOF-filen lagras på en hanterad disk som är monterad på cacheinstansen. Beständighetsfiler på disken är inte tillgängliga för användare eller kan inte användas av någon annan AMR-instans.
Många kunder vill använda beständighet för att utföra regelbundna säkerhetskopieringar av data i cacheminnet. Vi rekommenderar inte att du använder datapersistence på det här sättet. Använd i stället funktionen import/export . Du kan exportera kopior av data i RDB-format direkt till ditt valda lagringskonto och utlösa dataexporten så ofta du behöver. Dessa exporterade data kan sedan importeras till valfri Redis-instans. Export kan utlösas antingen från portalen eller med hjälp av CLI-, PowerShell- eller SDK-verktygen.
Klientbiblioteksspecifik vägledning
Mer information finns i Azure Managed Redis-klientbibliotek