Configuración de Redis

El archivo de configuración de Redis se encuentra en el directorio de instalación de Redis, con el nombre de archivoredis.conf(En Windows se llama redis.windows.conf).

Puedes usarCONFIGel comando para ver o establecer elementos de configuración.


Sintaxis

El formato del comando CONFIG de Redis es el siguiente:

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

Ejemplo

redis 127.0.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"

Usa*el símbolo * para obtener todos los elementos de configuración:

Ejemplo

redis 127.0.0.1:6379> CONFIG GET *

  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) ""
 11) "pidfile"
 12) "/var/run/redis.pid"
 13) "maxmemory"
 14) "0"
 15) "maxmemory-samples"
 16) "3"
 17) "timeout"
 18) "0"
 19) "tcp-keepalive"
 20) "0"
 21) "auto-aof-rewrite-percentage"
 22) "100"
 23) "auto-aof-rewrite-min-size"
 24) "67108864"
 25) "hash-max-ziplist-entries"
 26) "512"
 27) "hash-max-ziplist-value"
 28) "64"
 29) "list-max-ziplist-entries"
 30) "512"
 31) "list-max-ziplist-value"
 32) "64"
 33) "set-max-intset-entries"
 34) "512"
 35) "zset-max-ziplist-entries"
 36) "128"
 37) "zset-max-ziplist-value"
 38) "64"
 39) "hll-sparse-max-bytes"
 40) "3000"
 41) "lua-time-limit"
 42) "5000"
 43) "slowlog-log-slower-than"
 44) "10000"
 45) "latency-monitor-threshold"
 46) "0"
 47) "slowlog-max-len"
 48) "128"
 49) "port"
 50) "6379"
 51) "tcp-backlog"
 52) "511"
 53) "databases"
 54) "16"
 55) "repl-ping-slave-period"
 56) "10"
 57) "repl-timeout"
 58) "60"
 59) "repl-backlog-size"
 60) "1048576"
 61) "repl-backlog-ttl"
 62) "3600"
 63) "maxclients"
 64) "4064"
 65) "watchdog-period"
 66) "0"
 67) "slave-priority"
 68) "100"
 69) "min-slaves-to-write"
 70) "0"
 71) "min-slaves-max-lag"
 72) "10"
 73) "hz"
 74) "10"
 75) "no-appendfsync-on-rewrite"
 76) "no"
 77) "slave-serve-stale-data"
 78) "yes"
 79) "slave-read-only"
 80) "yes"
 81) "stop-writes-on-bgsave-error"
 82) "yes"
 83) "daemonize"
 84) "no"
 85) "rdbcompression"
 86) "yes"
 87) "rdbchecksum"
 88) "yes"
 89) "activerehashing"
 90) "yes"
 91) "repl-disable-tcp-nodelay"
 92) "no"
 93) "aof-rewrite-incremental-fsync"
 94) "yes"
 95) "appendonly"
 96) "no"
 97) "dir"
 98) "/home/deepak/Downloads/redis-2.8.13/src"
 99) "maxmemory-policy"
100) "volatile-lru"
101) "appendfsync"
102) "everysec"
103) "save"
104) "3600 1 300 100 60 10000"
105) "loglevel"
106) "notice"
107) "client-output-buffer-limit"
108) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
109) "unixsocketperm"
110) "0"
111) "slaveof"
112) ""
113) "notify-keyspace-events"
114) ""
115) "bind"
116) ""

Editar configuración

Puedes, ya sea modificando el archivo redis.conf o usando elCONFIG setcomando para modificar la configuración.

Sintaxis

CONFIG SETLa sintaxis básica del comando:

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

Ejemplo

redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"

Descripción de parámetros

La descripción de los elementos de configuración de redis.conf es la siguiente:

N.ºElemento de configuraciónDescripción
1
daemonize no
Redis no se ejecuta como proceso daemon de forma predeterminada; este elemento de configuración se puede modificar, usando yes para habilitar el proceso daemon (Windows no admite el modo daemon; la configuración debe ser no).
2
pidfile /var/run/redis.pid
Cuando Redis se ejecuta como proceso daemon, Redis escribe por defecto el pid en el archivo /var/run/redis.pid; se puede especificar mediante pidfile.
3
port 6379
Especifica el puerto de escucha de Redis; el puerto predeterminado es 6379. El autor explicó en una de sus publicaciones de blog por qué eligió 6379 como puerto predeterminado, porque 6379 es el número correspondiente a MERZ en el teclado del teléfono móvil, y MERZ proviene del nombre de la cantante italiana Alessia Merz.
4
bind 127.0.0.1
Dirección del host vinculada
5
timeout 300
Cierra la conexión después de cuántos segundos de inactividad del cliente; si se especifica 0, significa que la función está desactivada.
6
loglevel notice
Especifica el nivel de registro. Redis admite un total de cuatro niveles: debug, verbose, notice, warning; el valor predeterminado es notice.
7
logfile stdout
Modo de registro; por defecto es la salida estándar. Si se configura Redis para ejecutarse como proceso daemon y aquí también se configura el modo de registro como salida estándar, los registros se enviarán a /dev/null.
8
databases 16
Establece el número de bases de datos; la base de datos predeterminada es 0. Se puede usar SELECTel comando para especificar el id de la base de datos en la conexión.
9
save <seconds> <changes>

El archivo de configuración predeterminado de Redis proporciona tres condiciones:

save 900 1

save 300 10

save 60 10000

Que representan 1 cambio en 900 segundos (15 minutos), 10 cambios en 300 segundos (5 minutos) y 10000 cambios en 60 segundos, respectivamente.

Especifica cuántas operaciones de actualización en un período de tiempo determinado harán que los datos se sincronicen con el archivo de datos; se pueden combinar múltiples condiciones.
10
rdbcompression yes
Especifica si se comprimen los datos al almacenarlos en la base de datos local; el valor predeterminado es yes. Redis utiliza la compresión LZF. Si se quiere ahorrar tiempo de CPU, se puede desactivar esta opción, pero el archivo de la base de datos se volverá enorme.
11
dbfilename dump.rdb
Especifica el nombre del archivo de la base de datos local; el valor predeterminado es dump.rdb.
12
dir ./
Especifica el directorio de almacenamiento de la base de datos local.
13
slaveof <masterip> <masterport>
Establece la dirección IP y el puerto del servicio master cuando la máquina local actúa como servicio slave. Cuando Redis se inicia, sincroniza automáticamente los datos desde el master.
14
masterauth <master-password>
La contraseña que usa el servicio slave para conectarse al master cuando el servicio master ha establecido protección con contraseña.
15
requirepass foobared
Establece la contraseña de conexión de Redis. Si se configura una contraseña de conexión, el cliente debe proporcionarla mediante el comando AUTH <password> al conectarse a Redis; está desactivada de forma predeterminada.
16
 maxclients 128
Establece el número máximo de conexiones de clientes simultáneas; por defecto no tiene límite. El número de conexiones de clientes que Redis puede abrir simultáneamente es el número máximo de descriptores de archivo que puede abrir el proceso de Redis. Si se establece maxclients 0, significa que no hay límite. Cuando el número de conexiones de clientes alcanza el límite, Redis cierra las nuevas conexiones y devuelve al cliente el mensaje de error max number of clients reached.
17
maxmemory <bytes>
Especifica el límite máximo de memoria de Redis. Redis carga los datos en la memoria al iniciarse. Cuando se alcanza la memoria máxima, Redis primero intenta eliminar las claves caducadas o a punto de caducar. Si después de este proceso se sigue alcanzando el límite máximo de memoria, no se podrán realizar operaciones de escritura, pero aún se podrán realizar operaciones de lectura. El nuevo mecanismo de máquina virtual (vm) de Redis almacena las claves en la memoria y los valores en el área de intercambio (swap).
18
appendonly no
Especifica si se realiza un registro después de cada operación de actualización. De forma predeterminada, Redis escribe los datos en el disco de forma asíncrona. Si no se activa, podría provocar la pérdida de datos durante un período de tiempo en caso de corte de energía. Debido a que Redis sincroniza los archivos de datos según las condiciones de guardado (save) anteriores, algunos datos solo existirán en la memoria durante un tiempo. El valor predeterminado es no.
19
appendfilename appendonly.aof
Especifica el nombre del archivo de registro de actualizaciones; el valor predeterminado es appendonly.aof.
20
appendfsync everysec

Especifica las condiciones del registro de actualizaciones. Hay 3 valores opcionales:

  • no: significa esperar a que el sistema operativo sincronice la caché de datos con el disco (rápido)
  • always: significa llamar manualmente a fsync() después de cada operación de actualización para escribir los datos en el disco (lento, seguro)
  • everysec: significa sincronizar una vez por segundo (término medio, valor predeterminado)
21
vm-enabled no
Especifica si se habilita el mecanismo de memoria virtual; el valor predeterminado es no. Breve introducción: el mecanismo VM almacena los datos en páginas; Redis intercambia (swap) las páginas menos accedidas, es decir, los datos fríos, al disco, mientras que las páginas más accedidas se cargan automáticamente del disco a la memoria (en artículos posteriores analizaré en detalle el mecanismo VM de Redis).
22
vm-swap-file /tmp/redis.swap
Ruta del archivo de memoria virtual; el valor predeterminado es /tmp/redis.swap. No se puede compartir entre múltiples instancias de Redis.
23
vm-max-memory 0
Almacena en la memoria virtual todos los datos mayores que vm-max-memory. Por muy pequeño que sea el valor de vm-max-memory, todos los datos de índice se almacenan en la memoria (los datos de índice de Redis son las keys). Es decir, cuando vm-max-memory se establece en 0, en realidad todos los values se encuentran en el disco. El valor predeterminado es 0.
24
vm-page-size 32
El archivo swap de Redis se divide en muchas páginas (page). Un objeto se puede guardar en varias páginas, pero una página no puede ser compartida por varios objetos. vm-page-size debe definirse según el tamaño de los datos almacenados. El autor recomienda que, si se almacenan muchos objetos pequeños, el tamaño de página se establezca mejor en 32 o 64 bytes; si se almacenan objetos muy grandes, se puede usar una página más grande; si no estás seguro, usa el valor predeterminado.
25
vm-pages 134217728
Establece el número de páginas en el archivo swap. Dado que la tabla de páginas (un bitmap que indica si las páginas están libres o en uso) se encuentra en la memoria, cada 8 páginas en el disco consumirán 1 byte de memoria.
26
vm-max-threads 4
Establece el número de hilos para acceder al archivo swap. Es mejor no superar el número de núcleos de la máquina. Si se establece en 0, todas las operaciones sobre el archivo swap serán seriales, lo que puede causar retrasos bastante largos. El valor predeterminado es 4.
27
glueoutputbuf yes
Establece si, al responder al cliente, los paquetes más pequeños se combinan en un solo paquete para enviarlos; está activado de forma predeterminada.
28
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
Especifica que se adopte un algoritmo hash especial cuando se supera una cierta cantidad o cuando el elemento más grande supera un cierto valor crítico.
29
activerehashing yes
Especifica si se activa el re-hash; está activado de forma predeterminada (se explicará en detalle más adelante al presentar el algoritmo hash de Redis).
30
include /path/to/local.conf
Especifica la inclusión de otros archivos de configuración. Se puede usar el mismo archivo de configuración para múltiples instancias de Redis en el mismo host, mientras que cada instancia tiene su propio archivo de configuración específico.
Otras extensiones