As instâncias do Tair (Redis OSS-compatible) excluem dados expirados gradualmente, o que faz com que continuem ocupando memória mesmo após a expiração. Configure uma tarefa de Scheduled O&M no CloudOps Orchestration Service (OOS) para escanear (SCAN) todas as chaves em horários de baixa demanda, para que o sistema exclua imediatamente as chaves expiradas e libere memória.
Contexto
Para garantir o desempenho de leitura e gravação, as instâncias do Tair (Redis OSS-compatible) usam uma lógica de exclusão assíncrona. Quando os dados expiram, a instância não os exclui imediatamente. Em vez disso, a instância remove as chaves expiradas gradualmente por meio de dois mecanismos: exclusão ativa (um processo em segundo plano que escaneia e exclui periodicamente uma parte das chaves expiradas) e exclusão passiva (a instância exclui a chave quando um cliente tenta acessá-la). Em casos extremos, quando um grande volume de chaves expira simultaneamente, a liberação da memória pode levar muito tempo.
Use o serviço OOS gratuito para chamar periodicamente a API FlushExpireKeys, que escaneia todas as chaves e faz com que o sistema exclua imediatamente as que já expiraram.
O comando SCAN escaneia todos os dados e aumenta a carga da CPU da instância. Por favor, execute essa tarefa em horários de baixa demanda.
Pré-requisitos
Por favor, crie uma função RAM para que o serviço OOS acesse o Tair (Redis OSS-compatible). Para obter mais informações, consulte Configurar e conceder permissões a uma função RAM para o OOS.
Conceda a política de sistema AliyunKvstoreFullAccess à função, permitindo que ela gerencie todos os recursos do Tair (Redis OSS-compatible).
-
Como alternativa, crie uma política personalizada com base no princípio do menor privilégio. Essa política permite que o OOS chame apenas as APIs
DescribeInstanceseFlushExpireKeysdo Tair (Redis OSS-compatible), limitando as permissões da função a esta tarefa.
Procedimento
Por favor, acesse o console do OOS.
No painel de navegação à esquerda, escolha .
Por favor, clique em Create.
-
Configure a tarefa de Scheduled O&M.
NotaEste tópico descreve apenas os parâmetros principais. Para obter detalhes sobre outros parâmetros, consulte CloudOps Orchestration Service.
Configurações de agendamento
Neste exemplo, selecione Executed Periodically para executar a tarefa às 04:00 e 16:00 todos os dias.
Para Repeat Cycle, selecione cron expression e configure os campos da seguinte forma: defina Minute como
0, Hour como4,16, Day-of-month como?, Month como*e Day-of-week como*. Para Time Zone, selecione(GMT+08:00) Asia/Shanghai. Além disso, defina Effective Time como2025-07-23 00:00:00.Defina End Time como 2026-01-01 00:00:00. A tarefa agendada de O&M deixará de ser executada nesse horário.
Seleção de modelo
Na seção Public Templates, pesquise e selecione o modelo ACS-Redis-FlushExpireKeys.
Configuração dos parâmetros do modelo
Selecione a região da instância e, em seguida, a instância de destino.
Em Permission Source For Execution, selecione a função RAM criada na seção Pré-requisitos.
Configurações de execução (opcional)
Mantenha as configurações padrão nesta guia.
-
Por favor, clique em Create e, em seguida, em OK na caixa de diálogo de confirmação.
Quando o Execution Status de uma tarefa for Active, ela será executada automaticamente de acordo com as Schedule Settings.
Próximas etapas
Na lista de tarefas de Scheduled O&M, clique no Execution ID de uma tarefa para abrir a página de detalhes. Nessa página, visualize ou modifique a configuração da tarefa, acione uma execução imediatamente e visualize o histórico de execuções.
Após a exclusão dos dados expirados e a liberação de memória, a métrica de Memory Usage da instância diminuirá no Monitoramento de desempenho.
Documentação relacionada
Você também pode configurar o Alert and Event O&M no OOS. Por exemplo, chame a API FlushExpireKeys para excluir chaves expiradas quando o uso médio de memória atingir 90%. O processo de configuração é semelhante ao desta solução, e o ponto de entrada é . Para obter mais informações, consulte Criar uma tarefa de O&M baseada em alertas.
Para obter mais informações sobre como o Tair e o Redis excluem dados expirados, consulte Como o Tair e o Redis excluem chaves expiradas?