IBM Cloud Docs
Configuración de Redis como memoria caché

Configuración de Redis como memoria caché

IBM Cloud® Databases for Redis permite cambiar la configuración de la base de datosRedis, y se puede utilizar para configurar Redis como caché. Cuando se configura como una memoria caché, Redis desaloja datos antiguos a favor de datos nuevos de acuerdo con los valores de memoria caché que defina. Incluso cuando se configura como una memoria caché, los despliegues de Databases for Redis todavía toman una instantánea de copia de seguridad diaria. Actualmente no es posible inhabilitar las copias de seguridad en el despliegue. También escriben algunos datos en disco para alta disponibilidad. Redis funciona copiando un archivo .rdb para resincronizar los seguidores.

Configuración de la memoria caché

Para configurar la memoria caché, ajuste los valores maxmemory y maxmemory del despliegue. maxmemory define el tamaño de la memoria caché. Y maxmemory-policy define el comportamiento de desalojo cuando se alcanza el límite de maxmemory. Además, otros valores se encargan de las operaciones y el ajuste de las bases de datos.

maxmemory

De forma predeterminada, maxmemory se establece en el 80 % de la memoria disponible de un nodo de datos, para que el nodo no se quede sin recursos del sistema. Puede ajustar este valor, pero establecer un límite razonable. De lo contrario, puede ocurrir que los datos utilicen toda la memoria disponible y el despliegue se quede sin recursos.

maxmemory-policy

Políticas de desalojo de Redis disponibles
Política Comportamiento
noeviction No desaloja las claves y devuelve un error cuando se alcanza el límite de maxmemory.
allkeys-lfu Mantiene las claves utilizadas con frecuencia y elimina las claves utilizadas con menos frecuencia (LFU).
volatile-lfu Elimina las claves utilizadas con menos frecuencia con el campo de caducidad establecido en true.
allkeys-lru Desaloja primero las claves menos utilizadas recientemente (LRU).
volatile-lru Desaloja las claves menos utilizadas recientemente (LRU) del conjunto de claves que caducan primero.
allkeys-random Desaloja claves de forma aleatoria.
volatile-random Desaloja claves aleatoriamente del conjunto de claves que caducan.
volatile-ttl Desaloja las claves que caducan e intenta desalojar primero las claves que tienen un tiempo de vida más corto (TTL).

Con una política allkeys, el algoritmo elige qué claves desalojar del conjunto de todas las claves. Con una política volatile, el algoritmo elige desalojar las claves que tienen caducidad o tiempo de vida (TTL) establecido. En una política volatile, si no hay claves que coincidan con la política, no se desalojará ninguna clave.

Otros valores

Configuración de la cachéRedis
Política Comportamiento Notas
appendonly Valor predeterminado, yes. Permite grabar en disco los datos de Redis. Si está almacenando datos en la memoria caché, desea establecer este valor en no.
stop-writes-on-bgsave-error Valor predeterminado, yes. Redis deja de aceptar grabaciones si detecta una instantánea de copia de seguridad incorrecta. Para el almacenamiento en memoria caché, puede establecer este valor en no.
maxmemory-samples Ajusta el algoritmo de LRU, valor predeterminado, 5. Algoritmo LRU aproximado

Definición de una memoria caché de ejemplo

Para ajustar la configuración del despliegue, envíe un objeto JSON con los valores que desea cambiar y sus nuevos valores.

Puede utilizar CONFIG SET directamente desde un cli-client de Redis, pero los cambios realizados no son permanentes. Utilice el plug-in CLI o la API Cloud Databases CLI o API para cambiar el archivo de configuración de su despliegue. Encontrará más información en Cambiar la configuración de Redis.

Por ejemplo, la documentación de Redis recomienda el valor allkeys-lru como un buen punto de partida para una memoria caché de uso general. También es correcto dejar maxmemory y maxmemory-samples en sus valores predeterminados.

Para configurar la caché desde la CLI, puede utilizar lo siguiente:

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

Para establecer la misma configuración a través de la API, puede utilizar lo siguiente:

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