Redis MaxMemory Policies

Redis MaxMemory Policies
Este artigo discutirá a política Redis MaxMemory e como você pode usá -lo como um cache LRU.

O que é Política de Despeamento Redis?

Como o nome sugere, uma política de despejo é um recurso que permite que Redis "despeje" ou remova dados antigos à medida que novos dados são adicionados. Este é um recurso incrível principalmente quando o Redis é usado como um sistema de cache.

Diretiva Redis MaxMemory

No arquivo de configuração Redis, uma diretiva chamada MaxMemory determina a quantidade de memória alocada para um conjunto de dados.

Embora você possa configurar o MaxMemory em tempo de execução usando o comando de configuração de configuração, o redis.O arquivo conf permite defini -lo no modo de persistência.

Para definir o valor MaxMemory em tempo de execução, faça login na Redis CLI e digite o comando:

Conjunto de configuração MaxMemory 100

O comando acima definirá o valor maxmemory para 100 MB no tempo de execução. Você pode obter o valor definido atual para MaxMemory usando o comando:

127.0.0.1: 6379> Config Get MaxMemory*

Isso deve retornar:

1) "MaxMemory-Policy"
2) "Noeviction"
3) "MaxMemory Samples"
4) "5"
5) "MaxMemory"
6) "100"

O primeiro é a política de despejo. Isso determina como os dados são removidos após o alcance.

Nota: Definir o MaxMemory para 0 garante que não haja limites. Para sistemas de 64 bits, isso está definido como padrão. Em sistemas de 332 bits, Redis usará até 3 GB.

Como funciona o processo de despejo

Mas como exatamente esse processo de despejo funciona?

Isso acontece em 4 etapas simples.

  1. Primeiro, o cliente executa o comando para adicionar novos dados.
  2. Antes do comando ser executado, verifique se o uso da memória é maior que o limite definido.
  3. Se o limite for atingido, ele usa a política de despejo especificada para remover as chaves.
  4. Finalmente, o comando é executado e novos dados são adicionados.

Políticas de despejo de Redis

Continuamos mencionando políticas de despejo. O que eles são e o que eles fazem?

Em termos simples, uma política de despejo define as regras de como Redis despeja uma chave quando o limite de memória é atingido.

Existem duas categorias de políticas de despejo em Redis.

Políticas gerais de despejo

A primeira categoria são as políticas gerais de despejo. Essas políticas se aplicam a qualquer chave que não tenha um valor de expiração.

Eles incluem:

Noeviction

Esta política de despejo diz a Redis para não remover nenhum dado quando o limite de memória for atingido. Em vez disso, o Redis retornará um erro e falhará ao executar o comando Add Data.

Esta política é fortemente aplicável quando você precisa remover as chaves manualmente ou evitar a perda acidental de dados.

Allkeys-lru

A segunda política é Allkeys-Lru. Este tipo de política despeja menos recentemente Key ou LRU.

Esta política assume que você não precisa das chaves usadas recentemente e as despeja. Imagina Redis de errar no caso de um limite de memória.

Allkeys-Random

Esta política removerá as chaves em qualquer ordem aleatória. Esta é uma excelente política quando as chaves em seu banco de dados são de igual importância.

Políticas de despejo voláteis

Esses tipos de políticas de despejo dependem de chaves com valores de expiração. Eles incluem:

Volatie-Random

Esta política de despejo remove as chaves com um valor de expiração em qualquer ordem aleatória. É semelhante à política de Random Allkeys, exceto que apenas remove as teclas expiradas.

Volátil-ttl

A política volátil-TTL remove as chaves com um tempo de validade, mas escolhe o que é o menor tempo para morar primeiro.

Volátil-lru

Semelhante ao volátil-TTL, mas remove as teclas menos usadas com frequência primeiro.

Conclusão

Esta é uma introdução às políticas de Redis MaxMemory e de despejo. Você pode aprender mais sobre as regras de despejo de Redis no recurso abaixo.

https: // redis.io/tópicos/lru-cache