¿Cómo deshabilitar la persistencia con redis?

91

Me preguntaba cómo desactivar la presistencia en redis. Se menciona la posibilidad de hacer esto aquí: http://redis.io/topics/persistence . Lo digo en el mismo sentido exacto que se describe allí. ¡Cualquier ayuda sería muy apreciada!

Cenoc
fuente
Me pareció sorprendente, si no molesto, que no haya instrucciones en el sitio web oficial sobre esto ni que haya mucha información en Internet sobre esto (vea que stackoverflow.com/questions/19581059/… tiene muchos más votos y está mejor documentado que esta). En general, considerando que Redis se usa a menudo como una base de datos no persistente.
Akronix

Respuestas:

111

Para deshabilitar toda la persistencia de datos en Redis, haga lo siguiente en el redis.confarchivo:

  1. Deshabilite AOF estableciendo la appendonlydirectiva de configuración en no(es el valor predeterminado). Me gusta esto:

    appendonly no
    
  2. Deshabilite la instantánea RDB comentando todas las savedirectivas de configuración (hay 3 que están definidas por defecto)

    #save 900 1
    #save 300 10
    #save 60 10000
    

Después del cambio, asegúrese de reiniciar Redis para aplicarlos.

Alternativamente, puede usar el CONFIG SETcomando para aplicar estos cambios durante el tiempo de ejecución (solo asegúrese de hacer también un CONFIG REWRITEpara persistir los cambios).

Nota: dependiendo de la versión de su Redis, hay otros ajustes que impiden que Redis acceda al disco para tareas relacionadas con la replicación.

Itamar Haber
fuente
1
redis> config set auto-aof-rewrite-
percent
2
He configurado mi Redis para no guardar datos en el disco comentando las tres savedirectivas. Puedo ver que ya no toma instantáneas de los datos periódicamente. Sin embargo, sigo viendo un archivo .rdb escrito en el disco cada vez que apago mi servidor. ¿Podría crearse de todos modos, quizás debido al proceso de conmutación por error?
Jolta
1
Para que esto sea efectivo, puede usar los comandos enumerados aquí para hacerlo a través de cli: stackoverflow.com/a/34736871/2904315 O simplemente puede cambiar el archivo redis.conf como se explica en esta respuesta y luego reiniciar el servicio con:systemctl restart redis
Akronix
En linux, el redis.confarchivo ubicado en/etc/redis/redis.conf
Amin Shojaei
77

Si quieres evitar jugar con redis.conf(entornos de desarrollo / prueba), puedes hacerlo a través de la línea de comandos con

redis-server --save "" --appendonly no

(probado con servidor redis 3.2.6y 5.0.5)

Kostis
fuente
1
¿Estás seguro de que --appendonly noes necesario? ¿No está desactivado por defecto?
aleclarson
4
Podría ser cierto. Pero ciertamente no está de más agregarlo allí, solo para estar seguros, lo que queremos es deshabilitar todo tipo de persistencia;)
Kostis
hmm, no funcionó para mí en Windows 10 en WSL (Ubuntu 16)
James Gentes
@JamesGentes cuál es el error. Funciona en mi Fedora 29 con Redis 5.0.3, lo probé ahora. ¿Quizás necesite pasar los argumentos de una manera diferente en Windows? ¿Cuál es la versión de Redis? redis-server --helpquizás podría dar una idea
Kostis
1
También funciona en la versión 5.0.5.
abbas
18

Como AOF (appendonly) está deshabilitado de forma predeterminada, solo hay una cosa que se debe hacer para deshabilitar la persistencia sin reiniciar el servicio de redis : deshabilitar guardar configuración.

Para deshabilitarlo en tiempo de ejecución y verificar ejecutar debajo de los comandos

Verifique la configuración de guardado actual

pawan@devops:~$ redis-cli config get save
1) "save"
2) "900 1 300 10 60 10000"

La misma configuración estará presente en el archivo redis.conf también

pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'
save 900 1
save 300 10
save 60 10000

Deshabilitar guardar configuración

pawan@devops:~$ redis-cli config set save ""
OK

Modifique el archivo redis.conf con la nueva configuración de guardado para que la configuración permanezca permanente en los reinicios del servicio redis

root@ip-172-16-3-114:~# redis-cli config rewrite
OK

Confirmar la nueva configuración de guardado

pawan@devops:~$ redis-cli config get save
1) "save"
2) ""

Ahora, si escanea el archivo redis.conf para guardar la configuración, no habrá ningún resultado

pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'  
pawan@devops:~$
PKSingh
fuente
8

Para la captura de instantáneas RDB, puede deshabilitarlo usando

$ sed -e '/save/ s/^#*/#/' -i /etc/redis/redis.conf && sudo service redis-server restart

Comentará las líneas de guardado en redis.conf y reinicia el servidor redis

Naren Yellavula
fuente