Por que a memória usada é maior que a memória disponível?
Para instâncias de DCS de nó único e principal/em espera, a memória de instância usada é medida pelo processo Redis-server. Para instâncias de DCS de cluster, a memória de cluster usada é a soma da memória usada de todas as partições no cluster.
Devido à implementação interna do redis-server de código aberto, a memória de instância usada é normalmente um pouco maior do que a memória de instância disponível.
O Redis aloca memória usando zmalloc. Ele não verifica se used_memory excede max_memory toda vez que a memória é alocada. Em vez disso, ele verifica se used_memory atual excede max_memory no início de uma tarefa periódica ou processamento de comando. Se used_memory exceder max_memory, o despejo será acionado. Portanto, as restrições da política max_memory não são implementadas em tempo real ou rigidamente. Um caso em que used_memory é maior que max_memory pode ocorrer ocasionalmente.