Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden aanbevolen procedures beschreven voor geheugenbeheer in Azure Cache voor Redis.
Het juiste verwijderingsbeleid kiezen
Kies een verwijderingsbeleid dat geschikt is voor uw toepassing. Het standaardbeleid voor Azure Cache voor Redis is volatile-lru
, wat betekent dat alleen sleutels waarvoor een TTL-waarde (Time to Live) is ingesteld met een opdracht zoals EXPIRE , in aanmerking komen voor verwijdering. Als er geen sleutels een TTL-waarde hebben, worden er geen sleutels door het systeem verwijderd. Als u wilt dat het systeem toestaat dat een sleutel wordt verwijderd als deze onder geheugendruk staat, moet u rekening houden met het allkeys-lru
beleid.
Een vervaldatum voor sleutels instellen
Verwijdering vanwege geheugendruk kan leiden tot meer belasting op uw server. Stel een verloopwaarde voor uw sleutels in om sleutels proactief te verwijderen in plaats van te wachten totdat er geheugendruk is. Zie de documentatie voor de opdrachten Redis EXPIRE en EXPIREAT voor meer informatie.
Geheugenfragmentatie minimaliseren
Grote sleutelwaarden kunnen het geheugen fragmenteren bij verwijdering en kunnen leiden tot een hoog geheugengebruik en serverbelasting.
Geheugengebruik bewaken
Bewaak het geheugengebruik om ervoor te zorgen dat u geen geheugen meer hebt. Maak waarschuwingen aan om u de kans te geven uw cache te schalen voordat er problemen optreden.
De instelling maxmemory-reserved configureren
Configureer uw maxmemory-gereserveerde instellingen om de reactiesnelheid van het systeem te maximaliseren. Voldoende reserveringsinstellingen zijn met name belangrijk voor schrijfintensieve werkbelastingen of als u waarden van 100 kB of meer in uw cache opslaat.
De
maxmemory-reserved
instelling configureert de hoeveelheid geheugen, in MB per exemplaar in een cluster, gereserveerd voor niet-cachebewerkingen, zoals replicatie tijdens failover. Door deze waarde in te stellen, zult u merken dat uw Redis-serverervaring consistenter wordt wanneer uw belasting schommelingen vertoont.De
maxfragmentationmemory-reserved
instelling configureert de hoeveelheid geheugen, in MB per exemplaar in een cluster, gereserveerd voor geheugenfragmentatie. Wanneer u deze waarde instelt, is de Redis-serverervaring consistenter wanneer de cache vol of bijna vol is en de fragmentatieverhouding hoog is.
Wanneer geheugen is gereserveerd voor deze bewerkingen, is het niet beschikbaar voor het opslaan van gegevens in de cache. Wanneer u een cache maakt, wordt standaard ongeveer 10% van het beschikbare geheugen gereserveerd voor maxmemory-reserved
en is er nog eens 10% gereserveerd voor maxfragmentationmemory-reserved
. U kunt de gereserveerde bedragen verhogen als u veel schrijfintensieve taken hebt.
De toegestane bereiken voor maxmemory-reserved
en voor maxfragmentationmemory-reserved
zijn 10%-60% van maxmemory
. Als u deze waarden probeert in te stellen die lager zijn dan 10% of hoger dan 60%, worden ze opnieuw geëvalueerd en ingesteld op het minimum van 10% en 60% maximum.
Wanneer u een cache omhoog of omlaag schaalt, worden beide maxmemory-reserved
maxfragmentationmemory-reserved
instellingen automatisch geschaald in verhouding tot de cachegrootte. Als maxmemory-reserved
bijvoorbeeld is ingesteld op 3 GB op een cache van 6 GB en u schaalt naar een cache van 12 GB, wordt de instelling automatisch bijgewerkt naar 6 GB tijdens het schalen. Als u omlaag schaalt, gebeurt het omgekeerde.
Overweeg hoe het wijzigen van een maxmemory-reserved
- of maxfragmentationmemory-reserved
-reserveringswaarde van invloed kan zijn op een cache met een grote hoeveelheid gegevens die al draait. Als u bijvoorbeeld een cache van 53 GB hebt met de gereserveerde waarden ingesteld op de minimumwaarden van 10%, is het maximale beschikbare geheugen voor het systeem ongeveer 42 GB. Als uw huidige used_memory
waarden of used_memory_rss
waarden hoger zijn dan 42 GB, moet het systeem gegevens wissen tot beide used_memory
en used_memory_rss
kleiner zijn dan 42 GB.
Verwijdering kan de serverbelasting en geheugenfragmentatie verhogen. Zie Uw eigen metrische gegevens in de cache maken voor meer informatie over metrische gegevens in de cache, zoals used_memory
enused_memory_rss
.
Notitie
Wanneer u een cache programmatisch omhoog of omlaag schaalt met behulp van Azure PowerShell, Azure CLI of REST API, worden eventuele opgenomen maxmemory-reserved
of maxfragmentationmemory-reserved
instellingen genegeerd als onderdeel van de updateaanvraag. Alleen uw schaalwijziging wordt gehonoreerd. U kunt de geheugeninstellingen bijwerken nadat de schaalbewerking is voltooid.