Utveckling

Anslutningsåter flexibilitet och serverbelastning

När du utvecklar klientprogram bör du tänka på relevanta metodtips för anslutningsåter flexibilitet och hantering av serverbelastning.

Överväg fler nycklar och mindre värden

Azure Cache for Redis fungerar bäst med mindre värden. Överväg att dela upp större data segment i mindre segment för att sprida data över flera nycklar. Mer information om den perfekta värdestorleken finns i den här artikeln.

Stor storlek på begäran eller svar

En stor begäran/ett stort svar kan orsaka tidsgränser. Anta till exempel att tidsgränsvärdet 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", där båda begärandena "A" och "B" skickas en efter en utan att vänta på sina svar. Servern skickar tillbaka svaren i samma ordning. Om svaret "A" är stort kan den äta upp den mesta 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 svar "B" vänta efter att svaret "A" har tagit slut trots att servern svarade snabbt.

|-------- 1 Second Timeout (A)----------|
|-Request A-|
     |-------- 1 Second Timeout (B) ----------|
     |-Request B-|
            |- Read Response A --------|
                                       |- Read Response B-| (**TIMEOUT**)

Det här begäran/svaret är svårt att mäta. Du kan instrumentera din klientkod för att spåra stora begäranden och svar.

Lösningar för stora svarsstorlekar varierar, men omfattar:

  • Optimera ditt program för ett stort antal små värden i stället för några få stora värden.
  • Öka storleken på den virtuella datorn för att få högre bandbreddsfunktioner
    • Mer bandbredd på din virtuella klient- eller serverdator kan minska dataöverföringstiden 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 kostsamma åtgärder

Vissa Redis-åtgärder, till exempel kommandot KEYS, är dyra och bör undvikas. Några saker att tänka på när det gäller långvariga kommandon finns i långvariga kommandon

Välj en lämplig nivå

Använd Standard eller Premium för produktionssystem. Använd inte Basic-nivån i produktion. Basic-nivån är ett system med en nod utan datareplikering och inget serviceavtal. Använd också minst ett C1-cacheminne. C0-cacheminnen är endast avsedda för enkla dev/test-scenarier eftersom:

  • de delar en processorkärna
  • använda lite minne
  • är känsliga för problem med störningar hos grannar

Vi rekommenderar prestandatestning för att välja rätt nivå och verifiera anslutningsinställningarna. Mer information finns i Prestandatestning.

Klient i samma region som cache

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 när du använder Redis som cache. Om du använder Redis-servern som ett nyckel/värde-lager är svarstiden kanske inte det primära problemet.

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 utfasas i hela branschen, så använd TLS 1.2 om det är möjligt.

Om klientbiblioteket eller verktyget inte stöder TLS kan du aktivera okrypterade anslutningar via Azure Portal eller hanterings-API:er. I de fall där krypterade anslutningar inte är möjliga rekommenderar vi att du placerar cacheminnet och klientprogrammet i ett virtuellt nätverk. Mer information om vilka portar som används i scenariot med virtuell nätverkscache finns i den här tabellen.

Klientbiblioteksspecifik vägledning

Nästa steg