Configuraciones de Redis

En esta página, se describen las políticas de maxmemory y otras opciones de configuración de Redis disponibles de Memorystore para Redis. No es necesario reiniciar la instancia de Redis si ajustas una configuración.

Si deseas obtener instrucciones para modificar las configuraciones que se enumeran a continuación, consulta Configura instancias de Redis.

Políticas de maxmemory

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

  • noeviction: Muestra un error cuando la instancia de Redis alcanza maxmemory. No reemplaza ni expulsa datos.
  • allkeys-lfu: Disponible en Redis versión 4.0 o posterior. Expulsa las claves usadas con menor frecuencia (LFU) de todo el conjunto de claves.
  • allkeys-lru: Expulsa las claves que se usaron menos recientemente (LRU) del conjunto de claves completo.
  • volatile-lfu: Disponible en Redis versión 4.0 o posterior. Expulsa las claves usadas con menor frecuencia que se establecen con vencimientos TTL (tiempo de actividad).
  • volatile-lru: Expulsa las claves usadas con menor frecuencia (LRU) que se configuran con vencimientos de TTL.
  • allkeys-random: Expulsa claves aleatorias de todo el espacio de claves.
  • volatile-random: Expulsa claves aleatorias de entre las que tienen vencimiento TTL.
  • volatile-ttl: expulsa las claves con el TTL más corto de entre los conjuntos con caducidad de TTL.

Parámetros de configuración modificables

Puedes modificar los siguientes parámetros cuando creas o actualizas una instancia de Memorystore para Redis.


Parámetro Descripción Valores aceptables
activedefrag Redis versión 4.0 o posterior. Funciona para liberar memoria de instancia vinculada por el comportamiento de fragmentación de memoria de OSS estándar de Redis. no (predeterminado)
yes
lfu-decay-time Redis versión 4.0 o posterior. El tiempo, en minutos, antes de que el recuento de frecuencia de la LFU correspondiente a una clave determinada se dividirá por dos (o, si el recuento es inferior a 10 y disminuye de a 1). Consulta el archivo REDIS.CONF para obtener información adicional. Números enteros positivos del tipo de datos "long"
(predeterminado=1)
lfu-log-factor Redis versión 4.0 o posterior. Determina cómo el contador de frecuencia representa los hits clave. Antes de modificar la configuración predeterminada, lee cómo funciona la configuración lfu-log-factor en el archivo REDIS.CONF. Números enteros positivos del tipo datos "long"
(predeterminado=10)
maxmemory-gb Designa un límite ajustable en el que se implementa la política de expulsión. Por ejemplo, si tienes una instancia de 10 GB y estableces maxmemory-gb en 8, tu política de expulsión entrará en vigencia cuando tus datos ocupen 8 GB de memoria de instancia. Esto te deja 2 GB de memoria como sobrecarga. De forma predeterminada, maxmemory-gb se configura como la capacidad de tu instancia. Si deseas obtener detalles sobre para usar mejor la configuración maxmemory-gb, consulta las prácticas recomendadas de administración de memoria de Memorystore.

Esta configuración se muestra como maxmemory-percent en Google Cloud Console. Cuando usas la consola, configuras maxmemory-percent como un porcentaje de la capacidad de tu instancia en lugar de una cantidad específica de GB.
Cantidad de GB expresado como 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 a un mínimo del 20% de la capacidad de tu instancia.
maxmemory-policy Especifica el comportamiento que Redis sigue cuando los datos de la instancia alcanzan el límite de maxmemory-gb. Consulta Políticas de Maxmemory para obtener una descripción del comportamiento de cada política.

Para obtener información adicional sobre las políticas de código abierto de Redis de código abierto, consulta la página de caché de 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 de ciertos eventos de espacio clave. Consulta la página Notificaciones de espacio de claves de Redis en el sitio de Redis para obtener más información. "" (predeterminado)
K
Eventos de espacio de claves, publicados con el prefijo __keyspace@__.
E
Eventos de Keyevent, publicados con el prefijo __keyevent@__.
g
Comandos genéricos (no específico de los tipos), como DEL, EXPIRE o RENAME
$
Comandos de string
l
Comandos de lista
s
Comandos de configuración
h
Comandos hash
z
Comandos de conjunto ordenado
x
Eventos vencidos (eventos generados cada vez que vence una clave)
e
Eventos expulsados (eventos generados cuando se expulsa una clave para maxmemory)
A
Alias para g$lshzxe, de modo que la string “AKE” se refiera a todos los eventos.
stream-node-max-bytes Redis versión 5.0 o posterior. La estructura de datos de transmisión de Redis usa un árbol de radix para almacenar elementos. El parámetro stream-node-max-bytes designa la cantidad máxima de bytes disponibles para almacenar elementos en un solo nodo del árbol. Una vez que se alcanza este límite, se almacenan elementos nuevos en un nodo de árbol nuevo. Los números enteros 0 y posteriores.
(predeterminado=4096)
0 designa un nodo de árbol de tamaño ilimitado.
stream-node-max-entries Redis versión 5.0 o posterior. La estructura de datos de transmisión de Redis usa un árbol de radix para almacenar elementos. El parámetro stream-node-max-entries designa la cantidad de elementos que se pueden almacenar en un solo nodo. Cuando se alcanza este límite, los elementos nuevos se almacenan en un nodo nuevo del árbol. Los números enteros 0 y posteriores.
(predeterminado=100)
0 designa un nodo de árbol con una cantidad ilimitada de elementos.
timeout La cantidad de segundos antes de que finalicen las conexiones de clientes inactivas. Sin embargo, si timeout se configura como 0, los clientes inactivos no agotan el tiempo de espera y permanecen conectados hasta que el cliente emite la rescisión. 0 (predeterminado)
Números enteros = 120
Unidad = segundos

Parámetros de configuración no modificables

En la tabla siguiente, se enumeran 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 2,048
hash-max-ziplist-value 1,024
list-max-ziplist-size -2
list-compress-depth . 0
set-max-intset-entries 512
zset-max-ziplist-entries 1,024
zset-max-ziplist-value 1,024
hll-sparse-max-byte 3000
activerehashing
hz 10
databases 16
maxclients 65000
slowlog-log-slower-than 10000
slowlog-max-len 128
repl-diskless-load swapdb
io-threads-do-reads

¿Qué sigue?