Configuraciones de Redis admitidas

En esta página se describen las políticas de maxmemory y otras configuraciones de Redis disponibles en Memorystore para Redis. No es necesario que reinicies tu instancia de Redis si ajustas una configuración.

Para obtener instrucciones sobre cómo modificar las configuraciones que se indican a continuación, consulta Configurar instancias de Redis.

Políticas de memoria máxima

Cuando la memoria de tu instancia de Redis está llena y se recibe una nueva escritura, Redis expulsa claves para dejar espacio para la escritura en función de la política maxmemory de tu instancia. La política maxmemory predeterminada de Memorystore para Redis es volatile-lru. También puedes usar una de las siguientes políticas de maxmemory:

  • noeviction: devuelve un error cuando la instancia de Redis alcanza el valor de maxmemory. No sobrescribe ni elimina ningún dato.
  • allkeys-lfu: disponible en la versión 4.0 de Redis o en una posterior. Expulsa las claves menos usadas (LFU) de todo el conjunto de claves.
  • allkeys-lru: expulsa las claves menos usadas recientemente (LRU) de todo el conjunto de claves.
  • volatile-lfu: disponible en la versión 4.0 de Redis o en una posterior. Expulsa las claves menos usadas que se hayan definido con vencimientos de TTL (tiempo de vida).
  • volatile-lru: expulsa las claves menos usadas recientemente que se hayan definido con vencimientos de TTL.
  • allkeys-random: expulsa claves aleatorias de todo el espacio de claves.
  • volatile-random: expulsa claves aleatorias de entre las que se han definido con vencimientos de TTL.
  • volatile-ttl: expulsa las claves con el TTL más corto de entre las que se han definido con vencimientos de TTL.

Parámetros de configuración modificables

Puede modificar los siguientes parámetros al crear o actualizar una instancia de Memorystore para Redis.


Parámetro Descripción Valores aceptables
activedefrag Redis 4.0 o una versión posterior. Se utiliza para liberar la memoria de la instancia que está ocupada por el comportamiento de fragmentación de memoria de Redis OSS estándar. no (predeterminado)
yes
bases de datos Versión 3.2 de Redis o posterior. Especifica el número de bases de datos del servidor Redis. 1-100
El valor predeterminado es 16
lazyfree-lazy-eviction Redis 7.0 o una versión posterior. Habilita o inhabilita la liberación en diferido para la expulsión. no inhabilita esta configuración. Para obtener más información, consulta REDIS.CONF. no (predeterminado)
yes
lazyfree-lazy-expire Redis 7.0 o una versión posterior. Habilita o inhabilita la liberación en diferido para la caducidad. no inhabilita esta configuración. Para obtener más información, consulta REDIS.CONF. no (predeterminado)
yes
lazyfree-lazy-user-del Redis 7.0 o una versión posterior. Habilita o inhabilita la liberación diferida para el usuario DEL. no inhabilita esta configuración. Para obtener más información, consulta REDIS.CONF. no (predeterminado)
yes
lazyfree-lazy-user-flush Redis 7.0 o una versión posterior. Habilita o inhabilita la liberación diferida para el vaciado del usuario. no inhabilita esta configuración. Para obtener más información, consulta REDIS.CONF. no (predeterminado)
yes
lfu-decay-time Redis 4.0 o una versión posterior. El tiempo, en minutos, antes de que el contador de frecuencia LFU de una clave determinada se divida entre dos (o, si el contador es < 10, se reduce en 1). Consulta el archivo REDIS.CONF para obtener más información. Números enteros positivos del tipo de datos "long"
(valor predeterminado: 1)
lfu-log-factor Redis 4.0 o una versión posterior. Determina cómo representa el contador de frecuencia las pulsaciones de teclas. Antes de modificar la configuración predeterminada, consulta cómo funciona la configuración de lfu-log-factor en el archivo REDIS.CONF. Enteros positivos del tipo de datos "long"
(valor predeterminado: 10)
maxmemory-clients Redis 7.0 o una versión posterior. Esta configuración permite a los usuarios controlar el uso máximo de memoria de los clientes.

Uso total de memoria de los clientes normales o de publicación y suscripción. Si se alcanza el límite, se expulsará al cliente que más memoria utilice.
El valor predeterminado es 0% (sin límite). Los valores aceptables son valores porcentuales enteros entre 0% y 100%. Representa el porcentaje de maxmemory de la instancia al que se limita el almacenamiento del cliente.
maxmemory-gb Designa un límite ajustable en el que entra en vigor tu política de desalojo. Por ejemplo, si tienes una instancia de 10 GB y asignas maxmemory-gb a 8, tu política de desalojo se aplicará cuando tus datos ocupen 8 GB de la memoria de tu instancia. De esta forma, te quedan 2 GB de memoria como margen. De forma predeterminada, maxmemory-gb se define como la capacidad de tu instancia. Para obtener más información sobre cómo usar la configuración de maxmemory-gb de la mejor forma posible, consulta las prácticas recomendadas de gestión de memoria de Memorystore.

Esta configuración se muestra como maxmemory-percent en la Google Cloud consola. Cuando usas la consola, defines maxmemory-percent como porcentaje de la capacidad de tu instancia en lugar de un número específico de GB.
Número de GB expresado como un número entero o decimal.
Ejemplos:
10 designa un maxmemory-gb de 10 GB.
1.5 designa un maxmemory-gb de 1,5 GB.
maxmemory-gb se puede reducir hasta un mínimo del 20% de la capacidad de tu instancia.
maxmemory-policy Especifica el comportamiento que sigue Redis cuando los datos de la instancia alcanzan el límite de maxmemory-gb. Consulta las políticas de maxmemory para ver una descripción del comportamiento de cada política.

Para obtener más información sobre las políticas de maxmemory de Redis de código abierto, consulta la página de caché LRU de Redis de código abierto.
noeviction
allkeys-lru
volatile-lru (predeterminado)
allkeys-random
volatile-random
volatile-ttl
volatile-lfu (Redis 4.0 y versiones posteriores)
allkeys-lfu (Redis 4.0 y versiones posteriores)
notify-keyspace-events Permite a los clientes suscribirse a notificaciones sobre determinados eventos de espacio de claves. Consulta la página Notificaciones de espacio de claves de Redis en el sitio de Redis para obtener más información. "" (valor predeterminado)
K
Eventos de espacio de claves, publicados con el prefijo __keyspace@__
E
Eventos Keyevent, publicados con el prefijo __keyevent@__ .
g
Comandos genéricos (no específicos de un tipo), como DEL, EXPIRE o RENAME
$
Comandos de cadena
l
Comandos de lista
s
Comandos de conjunto
h
Comandos de hash
z
Comandos de conjunto ordenado
x
Eventos caducados (eventos generados cada vez que caduca una clave)
e
Eventos desalojados (eventos generados cuando se desaloja una clave por maxmemory)
A
Alias de g$lshzxe, de modo que la cadena "AKE" significa todos los eventos.
stream-node-max-bytes Redis 5.0 o una versión posterior. La estructura de datos de flujo de Redis usa un árbol radix para almacenar elementos. El parámetro stream-node-max-bytes designa el número máximo de bytes disponibles para almacenar elementos en un solo nodo de árbol. Una vez alcanzado este límite, los nuevos elementos se almacenan en un nuevo nodo de árbol. Números enteros iguales o superiores a 0.
(valor predeterminado: 4096)
El valor 0 designa un nodo de árbol de tamaño ilimitado.
stream-node-max-entries Redis 5.0 o una versión posterior. La estructura de datos de la secuencia de Redis usa un árbol radix para almacenar elementos. El parámetro stream-node-max-entries designa el número de elementos que se pueden almacenar en un solo nodo. Cuando se alcanza este límite, los nuevos elementos se almacenan en un nuevo nodo de árbol. Números enteros iguales o superiores a 0.
(valor predeterminado: 100)
El valor 0 designa un nodo de árbol con un número ilimitado de elementos.
timeout Número de segundos que transcurren antes de que se terminen las conexiones de cliente inactivas. Sin embargo, si timeout se define como 0, los clientes inactivos no agotan el tiempo de espera y permanecen conectados hasta que el cliente emite la finalización. 0 (valor predeterminado)
Números enteros >= 120
Unidad = segundos

Parámetros de configuración que no se pueden modificar

En la siguiente tabla se indican los parámetros de configuración de Redis que no puedes modificar en Memorystore para Redis y sus valores predeterminados. Consulta la documentación sobre la configuración de Redis para obtener información detallada sobre estos parámetros de configuración.

Parámetro Valor predeterminado
lua-time-limit 5000
hash-max-ziplist-entries 2048
hash-max-ziplist-value 1024
list-max-ziplist-size -2
list-compress-depth . 0
set-max-intset-entries 512
zset-max-ziplist-entries 1024
zset-max-ziplist-value 1024
hll-sparse-max-byte 3000
activerehashing yes
hz 10
databases 16
maxclients 65000
slowlog-log-slower-than 10000
slowlog-max-len 128
repl-diskless-load swapdb
io-threads-do-reads yes

Siguientes pasos