IBM Cloud Docs
Configurando o Redis como um cache

Configurando o Redis como um cache

IBM Cloud® Databases for Redis suporta a alteração da configuração do banco de dadosRedis e você pode usá-lo para configurar Redis como um cache. Quando configurado como um cache, o Redis despeja dados antigos em favor de novos dados de acordo com as configurações de cache definidas. Mesmo quando configurado como um cache, as implementações do Databases for Redis ainda obtêm uma captura instantânea diária de backup. Atualmente não é possível desativar os backups em sua implementação. Eles também gravam alguns dados no disco para alta disponibilidade. O Redis depende da cópia de um arquivo .rdb para ressincronizar os seguidores.

Configurações de Cache

Para configurar o cache, ajuste maxmemory e as configurações de maxmemory de sua implementação. maxmemory define o tamanho do cache. O maxmemory-policy define o comportamento de desocupação quando o limite maxmemory é atingido. Além disso, outras configurações cuidam de operações e ajustes de banco de dados.

maxmemory

Por padrão, o maxmemory é configurado para 80% da memória disponível de um nó de dados para que seu nó não fique sem recursos do sistema. É possível ajustar essa configuração, mas configure um limite razoável. Caso contrário, seus dados poderão usar toda a memória disponível e sua implementação ficará sem recursos.

maxmemory-policy

Políticas de despejo Redis disponíveis
Política Comportamento
noeviction Não despeja chaves e retorna um erro quando o limite maxmemory é atingido.
allkeys-lfu Mantém as chaves usadas frequentemente e remove as chaves usadas menos frequentemente (LFU).
volatile-lfu Remove chaves usadas menos frequentemente com o campo de expiração configurado como true.
allkeys-lru Despeja as chaves menos usadas recentemente (LRU) primeiro.
volatile-lru Despeja as chaves menos usadas recentemente (LRU) do conjunto de chaves que expira primeiro.
allkeys-random Despeja chaves aleatoriamente.
volatile-random Despeja chaves aleatoriamente do conjunto de chaves que expira.
volatile-ttl Despeja chaves que expiram e tenta despejar chaves com um tempo de vida (TTL) mais curto primeiro.

Com uma política allkeys, o algoritmo escolhe quais as chaves para despejar do conjunto de todas as chaves. Com uma política volatile, o algoritmo escolhe despejar chaves que tenham expirado ou tenham um conjunto de tempo de vida (TTL). Em uma política volatile, se nenhuma chave corresponder à política, nenhuma chave será despejada.

Outras configurações

Configurações de cacheRedis
Política Comportamento Notas
appendonly Valor padrão, yes. Permite que dados do Redis sejam gravados em disco. Se você estiver armazenando dados em cache, configure este valor para no.
stop-writes-on-bgsave-error Valor padrão, yes. O Redis deixará de aceitar gravações se detectar uma captura instantânea de backup malsucedida. Para armazenamento em cache, é possível configurar como no.
maxmemory-samples Ajusta o algoritmo LRU. O valor padrão é 5. Algoritmo LRU Aproximado

Configurando um cache de exemplo

Para ajustar a configuração de sua implementação, envie um objeto JSON com as configurações que deseja mudar e os novos valores.

Você é capaz de usar CONFIG SET diretamente de um cliente cli do Redis, mas as mudanças feitas lá não são permanentes. Use o Cloud Databases CLI plug-in ou API para alterar o arquivo de configuração de sua implantação. Há mais informações em Mudando a configuração do Redis.

Por exemplo, a documentação do Redis recomenda a configuração allkeys-lru como um bom local de início para um cache de uso geral. Também é bom deixar maxmemory e maxmemory-samples em seus valores padrão.

Para configurar o cache na CLI, você pode usar o seguinte:

ibmcloud cdb deployment-configuration '<INSTANCE_NAME_OR_CRN>' '{"configuration":{"maxmemory-policy":"allkeys-lru", "appendonly":"no", "stop-writes-on-bgsave-error":"no"}}'

Para definir a mesma configuração por meio da API, você pode usar o seguinte:

curl -X PATCH 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/configuration/schema' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"configuration":{
        "maxmemory-policy":"allkeys-lru",
        "appendonly":"no",
        "stop-writes-on-bgsave-error":"no"
      }
    }'