Minneshantering
Avlägsnandeprincip
Välj en avlägsningsprincip som fungerar för ditt program. Standardprincipen för Azure Cache for Redis är , vilket innebär att endast nycklar som har ett volatile-lru TTL-värde är berättigade till avlägsning. Om inga nycklar har ett TTL-värde tar systemet inte bort några nycklar. Om du vill att systemet ska tillåta att alla nycklar avlägsnas vid minnestryck kan du överväga allkeys-lru principen.
Förfallotid för nycklar
Ange ett förfallovärde för dina nycklar. En förfallotid tar bort nycklar proaktivt i stället för att vänta tills det finns minnestryck. När avlägsning sker på grund av minnesbelastning kan det orsaka mer belastning på servern. Mer information finns i dokumentationen för kommandona EXPIRE och EXPIREAT.
Minimera minnesfragmentering
Stora värden kan lämna minnet fragmenterat vid avlägsning och kan leda till hög minnesanvändning och serverbelastning.
Övervaka minnesanvändning
Lägg till övervakning av minnesanvändning för att se till att du inte får slut på minne och har möjlighet att skala cachen innan du får problem.
Konfigurera inställningen maxmemory-reserved
Konfigurera din maxmemory-reserverade inställning för att förbättra systemets svarstider:
En tillräcklig reservationsinställning är särskilt viktig för skrivintensiva arbetsbelastningar eller om du lagrar värden på 100 kB eller mer i cacheminnet. Börja med 10 % av storleken på cacheminnet och öka den här procentandelen om du har skrivbelastning.
Inställningen konfigurerar mängden minne i MB per instans i ett kluster som är reserverat för icke-cacheåtgärder, till exempel replikering
maxmemory-reservedunder redundans. Om du anger det här värdet får du en mer konsekvent Redis-serverupplevelse när belastningen varierar. Det här värdet ska anges högre för arbetsbelastningar som skriver stora mängder data. När minnet är reserverat för sådana åtgärder är det inte tillgängligt för lagring av cachelagrade data.Inställningen konfigurerar mängden minne i MB per instans i ett kluster som är reserverat för
maxfragmentationmemory-reservedminnesfragmentering. När du anger det här värdet blir Redis-serverupplevelsen mer konsekvent när cachen är full eller nära full och fragmenteringsförhållandet är högt. När minnet är reserverat för sådana åtgärder är det inte tillgängligt för lagring av cachelagrade data.En sak att tänka på när du väljer ett nytt värde för minnesreservation ( eller ) är hur den här ändringen kan påverka ett cacheminne som redan körs med stora
maxmemory-reservedmängder data imaxfragmentationmemory-reservedsig. Om du till exempel har en 53 GB cache med 49 GB data och sedan ändrar reservationsvärdet till 8 GB, sjunker det maximala tillgängliga minnet för systemet till 45 GB. Om dina aktuella eller dina värden är högre än den nya gränsen på 45 GB måste systemet avlägsna data tills både och ärused_memoryused_memory_rssused_memoryunderused_memory_rss45 GB. Avlägsning kan öka serverbelastningen och minnesfragmenteringen. Mer information om cachemått som och finnsused_memoryi Tillgängliga mått ochused_memory_rssrapporteringsintervall.