Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
O Cache do Azure para Redis anunciou seu cronograma de desativação para todas as SKUs. Recomendamos mover as suas instâncias existentes do Azure Cache para Redis para Azure Managed Redis o mais rápido possível.
Para mais detalhes sobre a aposentadoria:
Este artigo descreve as práticas recomendadas para gerenciamento de memória no Cache do Azure para Redis.
Escolha a política de despejo certa
Escolha uma política de despejo que funcione para o seu aplicativo. A política padrão para o Cache Redis do Azure é volatile-lru, o que significa que apenas as chaves que têm um valor TTL (tempo de vida) definido com um comando como EXPIRE são elegíveis para remoção. Se nenhuma chave tiver um valor TTL, o sistema não removerá nenhuma chave. Se você quiser que o sistema permita que qualquer chave seja removida se estiver sob pressão de memória, considere a allkeys-lru política.
Definir uma data de expiração de chaves
A expulsão devido à pressão de memória pode causar mais carga no seu servidor. Defina um valor de expiração em suas chaves para remover as chaves proativamente em vez de esperar até que haja pressão de memória. Para obter mais informações, consulte a documentação dos comandos Redis EXPIRE e EXPIREAT .
Minimizar a fragmentação da memória
Grandes valores-chave podem deixar a memória fragmentada na remoção e podem levar a um alto uso de memória e carga do servidor.
Monitorizar utilização da memória
Monitore o uso da memória para garantir que você não fique sem memória. Crie alertas para dar a você a chance de dimensionar seu cache antes que os problemas ocorram.
Configure a definição de maxmemory-reserved.
Configure as definições de maxmemory-reserved para maximizar a capacidade de resposta do sistema. Configurações de reserva suficientes são especialmente importantes para cargas de trabalho de gravação pesada ou se você estiver armazenando valores de 100 KB ou mais em seu cache.
A
maxmemory-reservedconfiguração define a quantidade de memória, em MB por instância em um cluster, reservada para operações que não sejam de cache, como replicação durante o failover. Definir este valor permite-lhe ter uma experiência de servidor do Redis mais consistente quando a sua carga varia.A
maxfragmentationmemory-reservedconfiguração define a quantidade de memória, em MB por instância em um cluster, reservada para acomodar a fragmentação de memória. Quando você define esse valor, a experiência do servidor Redis é mais consistente quando o cache está cheio ou próximo de cheio e a taxa de fragmentação é alta.
Quando a memória é reservada para essas operações, ela não está disponível para armazenar dados armazenados em cache. Por padrão, quando você cria um cache, aproximadamente 10% da memória disponível são reservados para maxmemory-reserved, e outros 10% são reservados para maxfragmentationmemory-reserved. Você pode aumentar as quantidades reservadas se tiver processos pesados de escrita.
Os intervalos permitidos para maxmemory-reserved e para maxfragmentationmemory-reserved são de 10%-60% de maxmemory. Se você tentar definir esses valores abaixo de 10% ou acima de 60%, eles serão reavaliados e definidos para o mínimo de 10% e máximo de 60%.
Quando se escala um cache para cima ou para baixo, ambas as definições maxmemory-reserved e maxfragmentationmemory-reserved são redimensionadas automaticamente proporcionalmente ao tamanho do cache. Por exemplo, se maxmemory-reserved estiver definido como 3 GB em um cache de 6 GB e você dimensionar para um cache de 12 GB, a configuração será atualizada automaticamente para 6 GB durante o dimensionamento. Se reduzir a escala, acontece o contrário.
Considere como a alteração de um valor de reserva de memória em maxmemory-reserved ou maxfragmentationmemory-reserved pode afetar um cache com uma grande quantidade de dados que já está em execução. Por exemplo, se você tiver um cache de 53 GB com os valores reservados definidos para os mínimos de 10%, a memória máxima disponível para o sistema é de aproximadamente 42 GB. Se os seus valores atuais used_memory ou used_memory_rss forem superiores a 42 GB, o sistema deve remover dados até que ambos used_memory e used_memory_rss estejam abaixo de 42 GB.
A remoção pode aumentar a carga do servidor e a fragmentação da memória. Para obter mais informações sobre métricas de cache, como used_memory e used_memory_rss, consulte Criar as suas próprias métricas.
Nota
Ao dimensionar um cache para cima ou para baixo programaticamente utilizando o Azure PowerShell, a CLI do Azure ou a API REST, quaisquer definições incluídas maxmemory-reserved ou maxfragmentationmemory-reserved são ignoradas como parte do pedido de atualização. Apenas a sua alteração de escala é considerada. Você pode atualizar as configurações de memória após a conclusão da operação de dimensionamento.