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í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
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"
}
}'