Utveckling
Anslut ionsresiliens 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 Cache for Redis 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.
Nyckeldistribution
Om du planerar att använda Redis-klustring läser du först Metodtips för Redis-klustring med nycklar.
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å
Använd Standard-, Premium-, Enterprise- eller Enterprise Flash-nivåer för produktionssystem. Använd inte basic-nivån i produktion. Basic-nivån är ett system med en enda nod utan datareplikering och inget serviceavtal. Använd också minst ett C1-cacheminne. C0-cacheminnen är bara avsedda för enkla utvecklings-/testscenarier eftersom:
- de delar en CPU-kärna
- använd lite minne
- är utsatta för problem med bullriga grannar
Vi rekommenderar prestandatestning för att välja rätt nivå och verifiera anslutningsinställningar. Mer information finns i Prestandatestning.
Klient i samma region som cachelagringen
Leta upp din cacheinstans och ditt program i samma region. Om du ansluter till en cache i en annan region kan latensen öka och tillförlitligheten minska avsevärt.
Även om du kan ansluta utanför Azure rekommenderas det inte, särskilt inte när du använder Redis som cacheminne. 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 cacheminnet 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. Här är de rekommenderade formulären för de olika nivåerna:
Nivå | Formulär |
---|---|
Basic, Standard, Premium | <cachename>.redis.cache.windows.net |
Enterprise, Enterprise Flash | <DNS name>.<Azure region>.redisenterprise.cache.azure.net. |
Välj en lämplig Redis-version
Standardversionen av Redis som används när du skapar en cache kan ändras över tid. Azure Cache for Redis kan anta en ny version när en ny version av Redis med öppen källkod släpps. Om du behöver en specifik version av Redis för ditt program rekommenderar vi att du uttryckligen väljer Redis-versionen när du skapar cacheminnet.
Specifik vägledning för Enterprise-nivåerna
Eftersom Enterprise- och Enterprise Flash-nivåerna bygger på Redis Enterprise i stället för Redis med öppen källkod finns det vissa skillnader i metodtips för utveckling. Mer information finns i Metodtips för Enterprise- och Enterprise Flash-nivåerna.
Använda TLS-kryptering
Azure Cache for Redis kräver TLS-krypterad kommunikation som standard. TLS-versionerna 1.0, 1.1 och 1.2 stöds för närvarande. TLS 1.0 och 1.1 är dock på väg att fasa ut hela branschen, så använd TLS 1.2 om det är möjligt.
Om klientbiblioteket eller verktyget inte stöder TLS är det möjligt att aktivera okrypterade anslutningar via Azure-portalen eller hanterings-API:er. I de fall där krypterade anslutningar inte är möjliga rekommenderar vi att du placerar ditt cache- och klientprogram i ett virtuellt nätverk. Mer information om vilka portar som används i cachescenariot för virtuella nätverk finns i den här tabellen.
Ändring av Azure TLS-certifikat
Microsoft uppdaterar Azure-tjänster för att använda TLS-servercertifikat från en annan uppsättning certifikatutfärdare (CA). Den här ändringen lanseras i faser från 13 augusti 2020 till 26 oktober 2020 (uppskattad). Azure gör den här ändringen eftersom de aktuella CA-certifikaten inte är något av kraven för CA/Browser-forumets baslinje. Problemet rapporterades den 1 juli 2020 och gäller för flera populära PKI-leverantörer (Public Key Infrastructure) över hela världen. De flesta TLS-certifikat som används av Azure-tjänster i dag kommer från Baltimore CyberTrust Root PKI. Azure Cache for Redis-tjänsten fortsätter att vara länkad till Baltimore CyberTrust Root. Dess TLS-servercertifikat kommer dock att utfärdas av nya mellanliggande certifikatutfärdare (ICAs) från och med den 12 oktober 2020.
Kommentar
Den här ändringen är begränsad till tjänster i offentliga Azure-regioner. Det exkluderar suveräna (t.ex. Kina) eller regeringsmoln.
Påverkar den här ändringen mig?
De flesta Azure Cache for Redis-kunder påverkas inte av ändringen. Ditt program kan påverkas om det uttryckligen anger en lista över godtagbara certifikat, en metod som kallas för att fästa certifikat. Om det fästs på ett mellanliggande certifikat eller lövcertifikat i stället för Baltimore CyberTrust Root bör du vidta omedelbara åtgärder för att ändra certifikatkonfigurationen.
Azure Cache for Redis stöder inte OCSP-häftning.
Följande tabell innehåller information om de certifikat som håller på att distribueras. Beroende på vilket certifikat programmet använder kan du behöva uppdatera det för att förhindra att anslutningen till Din Azure Cache for Redis-instans går förlorad.
CA-typ | Befintliga | Post Rolling (12 okt 2020) | Åtgärd |
---|---|---|---|
Rot | Tumavtryck: d4de20d05e66fc53fe1a5082c78db2852cae474 Förfallodatum: måndag 12 maj 2025, 16:59:00 Ämnesnamn: CN = Baltimore CyberTrust Root OU = CyberTrust O = Baltimore C = IE |
Ändras inte | Ingen |
Intermediärer | Tumavtryck: CN = Microsoft IT TLS CA 1 Tumavtryck: 417e225037fbfaa4f95761d5ae729e1aea7e3a42 CN = Microsoft IT TLS CA 2 Tumavtryck: 54d9d20239080c32316ed9ff980a4898f4adf2d CN = Microsoft IT TLS CA 4 Tumavtryck: 8a38755d0996823fe8fa3116a277ce446eac4e99 CN = Microsoft IT TLS CA 5 Tumavtryck: Ad898ac73df333eb60ac1f5fc6c4b2219ddb79b7 Förfallodatum: fredag 20 maj 2024 05:52:38 Ämnesnamn: OU = Microsoft IT O = Microsoft Corporation L = Redmond S = Washington C = USA |
Tumavtryck: CN = Microsoft RSA TLS CA 01 Tumavtryck: 703d7a8f0ebf55aaa59f98eaf4a206004eb2516a CN = Microsoft RSA TLS CA 02 Tumavtryck: b0c2d2d13cdd56cdaa6ab6e2c04440be4a429c75 Förfallodatum: Tisdag 8 oktober 2024 12:00:00; Ämnesnamn: O = Microsoft Corporation C = USA |
Obligatoriskt |
Vad behöver jag göra?
Om ditt program använder certifikatarkivet för operativsystemet eller fäster Baltimore-roten bland annat behövs ingen åtgärd.
Om ditt program fäster något mellanliggande eller löv-TLS-certifikat rekommenderar vi att du fäster följande rötter:
Certifikat | Tumavtryck |
---|---|
Baltimore Root CA | d4de20d05e66fc53fe1a50882c78db2852cae474 |
Microsoft RSA Root Certificate Authority 2017 | 73a5e64a3bff8316ff0edccc618a906e4eae4d74 |
Digicert Global Root G2 | df3c24f9bfd666761b268073fe06d1cc8d4f82a4 |
Dricks
Både mellanliggande certifikat och lövcertifikat förväntas ändras ofta. Vi rekommenderar att du inte är beroende av dem. Fäst i stället programmet på ett rotcertifikat eftersom det rullar mindre ofta.
Om du vill fortsätta att fästa mellanliggande certifikat lägger du till följande i listan över fästa mellanliggande certifikat, som innehåller några fler för att minimera framtida ändringar:
Certifikatmottagarens gemensamma namn | Tumavtryck |
---|---|
Microsoft RSA TLS CA 01 | 703d7a8f0ebf55aaa59f98eaf4a206004eb2516a |
Microsoft RSA TLS CA 02 | b0c2d2d13cdd56cdaa6ab6e2c04440be4a429c75 |
Microsoft Azure TLS Utfärdar CA 01 | 2f2877c5d778c31e0f29c7e371df5471bd673173 |
Microsoft Azure TLS Utfärdar CA 02 | e7eea674ca718e3befd90858e09f8372ad0ae2aa |
Microsoft Azure TLS Utfärdar CA 05 | 6c3af02e7f269aa73afd0eff2a88a4a1f04ed1e5 |
Microsoft Azure TLS utfärdar CA 06 | 30e01761ab97e59a06b41ef20af6f2de7ef4f7b0 |
Om ditt program validerar certifikatet i kod måste du ändra det för att identifiera egenskaperna --- till exempel Utfärdare, Tumavtryck --- för de nyligen fästa certifikaten. Den här extra verifieringen bör omfatta alla fästa certifikat för att vara mer framtidssäkrade.
Klientbiblioteksspecifik vägledning
Mer information finns i Klientbibliotek.