Come disabilitare la persistenza con Redis?


95

Mi chiedevo come disabilitare la presenza in Redis. Si parla della possibilità di farlo qui: http://redis.io/topics/persistence . Lo intendo esattamente nello stesso senso descritto qui. Qualsiasi aiuto sarebbe molto apprezzato!


Ho trovato sorprendente, se non fastidioso, che non ci siano istruzioni sul sito ufficiale su questo e non ci siano molte informazioni su Internet su questo (vedi che stackoverflow.com/questions/19581059/… ha molti più voti ed è meglio documentato di Questo). Nel complesso, considerando che Redis viene spesso utilizzato come database non persistente.
Akronix

Risposte:


115

Per disabilitare tutta la persistenza dei dati in Redis, eseguire le seguenti operazioni nel redis.conffile:

  1. Disabilita AOF impostando la appendonlydirettiva di configurazione su no(è il valore predefinito). come questo:

    appendonly no
    
  2. Disabilita lo snapshot RDB commentando tutte le savedirettive di configurazione (ce ne sono 3 definite per impostazione predefinita)

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

Dopo le modifiche, assicurati di riavviare Redis per applicarle.

In alternativa, puoi usare il CONFIG SETcomando per applicare queste modifiche durante il runtime (assicurati solo di fare anche a CONFIG REWRITEper rendere persistenti le modifiche).

Nota: a seconda della versione di Redis, ci sono altre modifiche che impediscono a Redis di accedere al disco per attività relative alla replica.


1
redis> config set auto-aof-rewrite-
percent

2
Ho configurato il mio Redis per non salvare i dati su disco commentando le tre savedirettive. Vedo che non esegue più periodicamente l'istantanea dei dati. Tuttavia, vedo ancora un file .rdb scritto su disco ogni volta che chiudo il server. Potrebbe essere creato comunque, forse a causa del processo di failover?
Jolta

1
Per renderlo effettivamente efficace, potresti utilizzare i comandi elencati qui per farlo tramite cli: stackoverflow.com/a/34736871/2904315 Oppure potresti semplicemente modificare il file redis.conf come spiegato in questa risposta e quindi riavviare il servizio con:systemctl restart redis
Akronix

In Linux, il redis.conffile si trova in/etc/redis/redis.conf
Amin Shojaei

79

Se vuoi evitare di giocare con redis.conf(ambienti di sviluppo / test), puoi farlo tramite la riga di comando con

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

(testato con server redis 3.2.6e 5.0.5)


1
Sei sicuro che --appendonly nosia necessario? Non è disattivato per impostazione predefinita?
aleclarson

4
Potrebbe essere vero. Ma certamente non fa male aggiungerlo lì, solo per essere sicuri, quello che vogliamo è disabilitare tutti i tipi di persistenza;)
Kostis

hmm, non ha funzionato per me su Windows 10 in WSL (Ubuntu 16)
James Gentes,

@JamesGentes qual è l'errore. Funziona nella mia Fedora 29 con Redis 5.0.3, l'ho testato ora. Forse hai bisogno di passare gli argomenti in un modo diverso in Windows? Qual è la versione di Redis? redis-server --helppotrebbe forse dare qualche spunto
Kostis

1
Funziona anche sulla versione 5.0.5.
abbas

20

Poiché AOF (appendonly) è disabilitato per impostazione predefinita, c'è solo una cosa da fare per disabilitare la persistenza senza il riavvio del servizio redis è disabilitare il salvataggio della configurazione.

Per disabilitarlo in runtime e verificare l'esecuzione sotto i comandi

Controlla la configurazione di salvataggio corrente

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

La stessa impostazione sarà presente anche nel file redis.conf

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

Disabilita il salvataggio della configurazione

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

Modificare il file redis.conf con la nuova configurazione di salvataggio in modo che la configurazione rimanga permanente al riavvio del servizio redis

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

Conferma la nuova configurazione di salvataggio

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

Ora, se scansionerai il file redis.conf per salvare la configurazione, non ci saranno risultati

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

8

Per lo snapshot RDB puoi disabilitarlo usando

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

Commenterà le righe di salvataggio in redis.conf e riavvierà il redis-server

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.