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
- Consulta más información sobre las configuraciones de Redis en la página de configuración de Redis de código abierto.