Den här artikeln innehåller svar på vanliga frågor om hur du utvecklar för Azure Cache for Redis.
Hur kommer jag igång med Azure Cache for Redis?
Det finns flera sätt att komma igång med Azure Cache for Redis.
- Du kan kolla in någon av våra självstudier för .NET, ASP.NET, Java, Node.js och Python.
- Du kan se Hur du skapar högpresterande appar med Hjälp av Microsoft Azure Cache for Redis.
- Du kan läsa klientdokumentationen för de exempelklienter som matchar det utvecklingsspråk som du använder i projektet. Det finns många Redis-klienter som kan användas med Azure Cache for Redis. En lista över Redis-klienter finns i https://redis.io/clients.
Om du inte redan har ett Azure-konto kan du:
- Öppna ett Azure-konto kostnadsfritt. Du får kredit som kan användas för att prova Azure-tjänster som normalt inte är kostnadsfria. Du kan behålla kontot även efter att krediten är slut och använda kostnadsfria Azure-tjänster och -funktioner.
- Aktivera Visual Studio-prenumerantförmåner. Din MSDN-prenumeration ger dig krediter varje månad som kan användas för Azure-betaltjänster.
Vad gör konfigurationsalternativen StackExchange.Redis?
StackExchange.Redis har många alternativ. I det här avsnittet beskrivs några av de vanliga inställningarna. Mer detaljerad information om StackExchange.Redis-alternativ finns i StackExchange.Redis-konfiguration.
ConfigurationOptions | beskrivning | Rekommendation |
---|---|---|
AbortOnConnectFail | När värdet är true kan anslutningen inte återansluta efter ett nätverksfel. | Ange till false och låt StackExchange.Redis återansluta automatiskt. |
ConnectRetry | Antal gånger som anslutningsförsök ska upprepas under den första anslutningen. | Se följande anteckningar för vägledning. |
ConnectTimeout | Tidsgräns i ms för anslutningsåtgärder. | Se följande anteckningar för vägledning. |
Vanligtvis räcker standardvärdena för klienten. Du kan finjustera alternativen baserat på din arbetsbelastning.
Försök
- För ConnectRetry och ConnectTimeout är den allmänna vägledningen att misslyckas snabbt och försöka igen. Den här vägledningen baseras på din arbetsbelastning och hur lång tid--- i genomsnitt---det tar för klienten att utfärda ett Redis-kommando och få ett svar.
- Låt StackExchange.Redis automatiskt återansluta i stället för att kontrollera anslutningsstatus och återansluta dig själv. Undvik att använda egenskapen ConnectionMultiplexer.IsConnected.
- Snöboll – du kan stöta på ett problem där du försöker igen och återförsöken snöboll och aldrig återhämta sig. Om det uppstår snöboll bör du överväga att använda en exponentiell algoritm för återförsök av backoff enligt beskrivningen i Retry allmän vägledning publicerad av gruppen Microsoft Patterns &Practices.
Tidsgränsvärden
Överväg din arbetsbelastning och ange de värden som ska matchas. Om du lagrar stora värden anger du tidsgränsen till ett högre värde.
Ställ in
AbortOnConnectFail
på false och låt StackExchange.Redis återansluta åt dig.Använd en enda, långlivad
ConnectionMultiplexer
instans i stället för att skapa en ny anslutning för varje begäran. Ett exempel på hur du hanterar en anslutningRedisConnection
finns i klassen i Anslut till cachen med hjälp av RedisConnection.Ange egenskapen
ConnectionMultiplexer.ClientName
till ett unikt namn för en appinstans för diagnostiska ändamål.Använd flera
ConnectionMultiplexer
instanser för anpassade arbetsbelastningar.Du kan följa den här modellen om du har olika belastningar i ditt program. Till exempel:
- Du kan ha en multiplexer för att hantera stora nycklar.
- Du kan ha en multiplexer för att hantera små nycklar.
- Du kan ange olika värden för tidsgränser för anslutningar och försöka logik igen för varje
ConnectionMultiplexer
som du använder. - Ange egenskapen för
ClientName
varje multiplexer som hjälp med diagnostik.
Om du följer den här vägledningen kan det leda till mer effektiva svarstider per
ConnectionMultiplexer
.
Vilka Azure Cache for Redis-klienter kan jag använda?
En av de stora sakerna med Redis är att det finns många klienter som stöder många olika utvecklingsspråk. En aktuell lista över klienter finns i Redis-klienter. Självstudier som omfattar flera olika språk och klienter finns i Så här använder du Azure Cache for Redis.
Hämta värdnamnet, portarna och åtkomstnyckeln
För att ansluta till Azure Cache for Redis-servern behöver cacheklienten cachens värdnamn, portar och en åtkomstnyckel. Vissa klienter kan referera till dessa objekt med hjälp av lite olika namn. Du kan hämta värdnamnet, portarna och nycklarna i Azure Portal.
Så här hämtar du en åtkomstnyckel för din cache:
- I Azure Portal går du till cacheminnet.
- På tjänstmenyn går du till Inställningar och väljer Autentisering.
- I fönstret Autentisering väljer du fliken Åtkomstnycklar .
- Om du vill kopiera värdet för en åtkomstnyckel väljer du ikonen Kopiera i nyckelfältet.
Så här hämtar du värdnamnet och portarna för cachen:
- I Azure Portal går du till cacheminnet.
- På tjänstmenyn väljer du Översikt.
- Under Essentials, för Värdnamn, väljer du ikonen Kopiera för att kopiera värdnamnets värde. Värdnamnets värde har formuläret
<DNS name>.redis.cache.windows.net
. - För Portar väljer du ikonen Kopiera för att kopiera portvärdena.
Finns det en lokal emulator för Azure Cache for Redis?
Det finns ingen lokal emulator för Azure Cache for Redis. Du kan dock köra en kopia av Community Redis på din lokala dator och ansluta till den för att få en liknande upplevelse som en lokal cacheemulator, som du ser i följande exempel:
private static Lazy<ConnectionMultiplexer>
lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
{
// Connect to a locally running instance of Redis to simulate
// a local cache emulator experience.
return ConnectionMultiplexer.Connect("127.0.0.1:6379");
});
public static ConnectionMultiplexer Connection
{
get
{
return lazyConnection.Value;
}
}
Redis körs internt på Linux, men du kan också använda Windows-undersystem för Linux för att köra Redis på en Windows-dator. Mer information finns i Installera Redis på Windows Du kan också konfigurera en redis.conf-fil så att den bättre matchar standardinställningarna för cache för din Azure Cache for Redis online om du vill.
Hur kan jag köra Redis-kommandon?
Du kan använda något av kommandona som anges i Redis-kommandon förutom de kommandon som anges i Redis-kommandon som inte stöds i Azure Cache for Redis. Du har flera alternativ för att köra Redis-kommandon.
Om du har en Standard- eller Premium-cache kan du köra Redis-kommandon med Hjälp av Redis-konsolen. Redis-konsolen ger ett säkert sätt att köra Redis-kommandon i Azure Portal.
Du kan också använda redis-kommandoradsverktygen. Information om hur du använder dem finns i Använda redis-kommandoradsverktyget med Azure Cache for Redis
Varför har inte Azure Cache for Redis en referens för MSDN-klassbiblioteket?
Microsoft Azure Cache for Redis baseras på det populära datalagret Med öppen källkod i minnet, Redis. Du kan använda en mängd olika Redis-klienter för många programmeringsspråk. Varje klient har ett eget API som anropar Azure Cache for Redis-instansen med hjälp av Redis-kommandon.
Eftersom varje klient är annorlunda kan du inte hitta en centraliserad klassreferens på MSDN. Varje klient har en egen referensdokumentation. Förutom referensdokumentationen finns det flera självstudier som visar hur du kommer igång med Azure Cache for Redis med olika språk och cacheklienter. Information om hur du kommer åt de här självstudierna finns i Så här använder du Azure Cache for Redis och dess syskonartiklar i innehållsförteckningen.
Kan jag använda Azure Cache for Redis som en PHP-sessionscache?
Ja, om du vill använda Azure Cache for Redis som en PHP-sessionscache anger du anslutningssträng till Din Azure Cache for Redis-instans i session.save_path
.
Viktigt!
När du använder Azure Cache for Redis som en PHP-sessionscache måste du URL-koda säkerhetsnyckeln som används för att ansluta till cachen, som du ser i följande exempel:
session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";
Om nyckeln inte är URL-kodad kan du få ett undantag med ett meddelande som: Failed to parse session.save_path
Mer information om hur du använder Azure Cache for Redis som en PHP-sessionscache med PhpRedis-klienten finns i PHP-sessionshanteraren.
Vad är Redis-databaser?
Redis-databaser är bara en logisk uppdelning av data i samma Redis-instans. Cacheminnet delas mellan alla databaser och den faktiska minnesförbrukningen för en viss databas beror på de nycklar/värden som lagras i databasen. Till exempel har en C6-cache 53 GB minne och en P5 har 120 GB. Du kan välja att placera alla 53 GB/120 GB i en databas eller dela upp den mellan flera databaser.
Kommentar
När du använder en Premium Azure Cache for Redis med klustring aktiverat är endast databas 0 tillgänglig. Den här begränsningen är en inbyggd Redis-begränsning och är inte specifik för Azure Cache for Redis.
Relaterat innehåll
Läs mer om andra vanliga frågor och svar om Azure Cache for Redis.