Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Azure Cache for Redis meddelade sin tidslinje för pensionering för alla SKU:er. Vi rekommenderar att du flyttar dina befintliga Azure Cache for Redis-instanser till Azure Managed Redis så snart du kan.
Mer information om pensionering:
I den här artikeln beskrivs metodtips för minneshantering i Azure Cache for Redis.
Välj rätt borttagningsprincip
Välj en borttagningsprincip som fungerar för ditt program. Standardprincipen för Azure Cache for Redis är volatile-lru, vilket innebär att endast nycklar som har värdet time to live (TTL) som angetts med ett kommando som EXPIRE är berättigade till borttagning. Om inga nycklar har ett TTL-värde tar systemet inte bort några nycklar. Om du vill att systemet ska tillåta att vilken som helst nyckel utkastas vid minnestryck bör du överväga allkeys-lru policyn.
Ange ett förfallodatum för nycklar
Borttagning på grund av minnestryck kan orsaka mer belastning på servern. Ange ett förfallovärde på dina nycklar för att ta bort nycklar proaktivt i stället för att vänta tills minnesbelastning uppstår. Mer information finns i dokumentationen för kommandona Redis EXPIRE och EXPIREAT .
Minimera minnesfragmentering
Stora nyckelvärden kan lämna minnet fragmenterat vid borttagning och kan leda till hög minnesanvändning och serverbelastning.
Övervaka minnesanvändning
Övervaka minnesanvändningen för att säkerställa att minnet inte tar slut. Skapa aviseringar för att ge dig en chans att skala cachen innan problem uppstår.
Konfigurera din maxmemory-reserverade inställning
Konfigurera dina maxmemory-reserverade inställningar för att maximera systemets svarstider. Tillräckliga reservationsinställningar är särskilt viktiga för skrivintensiva arbetsbelastningar, eller om du lagrar värden på 100 KB eller mer i cacheminnet.
Inställningen
maxmemory-reservedkonfigurerar mängden minne i MB per instans i ett kluster som är reserverat för icke-cacheåtgärder, till exempel replikering under redundansväxling. Genom att ange det här värdet får du en mer konsekvent Redis-serverupplevelse när belastningen varierar.Inställningen
maxfragmentationmemory-reservedkonfigurerar mängden minne i MB per instans i ett kluster som är reserverat för minnesfragmentering. När du anger det här värdet är Redis-serverupplevelsen mer konsekvent när cacheminnet är fullt eller nästan fullt och fragmenteringsförhållandet är högt.
När minnet är reserverat för dessa åtgärder är det inte tillgängligt för lagring av cachelagrade data. Som standard när du skapar en cache reserveras cirka 10% av det tillgängliga minnet för maxmemory-reservedoch ytterligare 10% reserveras för maxfragmentationmemory-reserved. Du kan öka de reserverade beloppen om du har skrivintensiva belastningar.
De tillåtna intervallen för maxmemory-reserved och för maxfragmentationmemory-reserved är 10%-60% av maxmemory. Om du försöker ange dessa värden som är lägre än 10 % eller högre än 60 %, utvärderas de på nytt och anges till 10 % minimum och 60 % maximalt.
När du skalar upp eller ned en cache skalas både maxmemory-reserved och maxfragmentationmemory-reserved inställningarna automatiskt i proportion till cachestorleken. Om maxmemory-reserved inställningen till exempel är inställd på 3 GB på en cache på 6 GB och du skalar till en cache på 12 GB uppdateras inställningen automatiskt till 6 GB under skalningen. Om du skalar ned sker det omvända.
Fundera på hur ändring av ett minnesreservationsvärde för maxmemory-reserved eller maxfragmentationmemory-reserved kan påverka en cache med en stor mängd data i sig som redan körs. Om du till exempel har en cache på 53 GB med de reserverade värdena inställda på minst 10% är det maximala tillgängliga minnet för systemet cirka 42 GB. Om antingen ditt nuvarande used_memory-värde eller used_memory_rss-värde är högre än 42 GB måste systemet ta bort data tills både used_memory- och used_memory_rss-värdena är under 42 GB.
Borttagning kan öka serverbelastningen och minnesfragmenteringen. Mer information om cachemått som used_memory och finns i used_memory_rss.
Kommentar
När du skalar upp eller ned en cache programmatiskt med hjälp av Azure PowerShell, Azure CLI eller REST API ignoreras alla inkluderade maxmemory-reserved inställningar eller maxfragmentationmemory-reserved inställningar som en del av uppdateringsbegäran. Endast din skalningsändring respekteras. Du kan uppdatera minnesinställningarna när skalningsåtgärden har slutförts.