Wie deaktiviere ich die Persistenz mit Redis?


90

Ich habe mich gefragt, wie ich die Präsenz in Redis deaktivieren kann. Die Möglichkeit, dies zu tun, wird hier erwähnt: http://redis.io/topics/persistence . Ich meine es genau so, wie es dort beschrieben wurde. Jede Hilfe wäre sehr dankbar!


Ich fand es überraschend, wenn nicht ärgerlich, dass es auf der offiziellen Website keine Anweisungen dazu gibt und es auch keine Informationen im Internet gibt (siehe, dass stackoverflow.com/questions/19581059/… viel mehr Stimmen hat und besser dokumentiert ist als Dies). Insgesamt wird berücksichtigt, dass Redis häufig als nicht persistente Datenbank verwendet wird.
Akronix

Antworten:


109

Gehen Sie wie folgt vor, um die gesamte Datenpersistenz in Redis zu deaktivieren redis.conf:

  1. Deaktivieren Sie AOF, indem Sie die appendonlyKonfigurationsanweisung auf setzen no(dies ist der Standardwert). so was:

    appendonly no
    
  2. Deaktivieren Sie das RDB-Snapshotting, indem Sie alle saveKonfigurationsanweisungen kommentieren (es gibt 3, die standardmäßig definiert sind).

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

Stellen Sie nach der Änderung sicher, dass Sie Redis neu starten, um sie anzuwenden.

Alternativ können Sie den CONFIG SETBefehl verwenden, um diese Änderungen zur Laufzeit anzuwenden (stellen Sie einfach sicher, dass Sie auch a CONFIG REWRITEausführen, um die Änderungen beizubehalten).

Hinweis: Abhängig von der Version Ihres Redis gibt es weitere Verbesserungen, die verhindern, dass Redis für replikationsbezogene Aufgaben auf die Festplatte zugreift.


1
redis> config set auto-aof-rewrite-prozentual 0
toontong

2
Ich habe meine Redis so konfiguriert, dass keine Daten auf der Festplatte gespeichert werden, indem die drei saveAnweisungen auskommentiert werden. Ich kann sehen, dass die Daten nicht mehr regelmäßig aufgenommen werden. Ich sehe jedoch immer noch eine .rdb-Datei, die auf die Festplatte geschrieben wird, wenn ich meinen Server herunterfahre. Könnte es trotzdem erstellt werden, möglicherweise aufgrund des Failover-Prozesses?
Jolta

1
Um dies tatsächlich effektiv zu machen, können Sie die hier aufgeführten Befehle verwenden, um dies über cli zu tun: stackoverflow.com/a/34736871/2904315 Oder Sie können einfach die Datei redis.conf wie in dieser Antwort erläutert ändern und den Dienst dann neu starten mit:systemctl restart redis
Akronix

Unter Linux befindet sich die redis.confDatei in/etc/redis/redis.conf
Amin Shojaei

74

Wenn Sie das Spielen mit redis.conf(Entwicklungs- / Testumgebungen) vermeiden möchten , können Sie dies über die Befehlszeile mit tun

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

(getestet mit redis server 3.2.6und 5.0.5)


1
Bist du sicher, dass das --appendonly nonotwendig ist? Ist es nicht standardmäßig ausgeschaltet?
Aleclarson

4
Könnte wahr sein. Aber es tut bestimmt nicht weh, es dort hinzuzufügen, nur um auf der sicheren Seite zu sein. Wir wollen alle Arten von Persistenz deaktivieren;)
Kostis

hmm, hat bei Windows 10 in WSL (Ubuntu 16) nicht funktioniert
James Gentes

@ JamesGentes, was ist der Fehler. Es funktioniert in meinem Fedora 29 mit Redis 5.0.3, jetzt getestet. Vielleicht müssen Sie die Argumente in Windows anders übergeben? Was ist die Redis-Version? redis-server --helpkönnte vielleicht einen Einblick geben
Kostis

1
Funktioniert auch mit Version 5.0.5.
Abbas

16

Da AOF (nur anhängend) standardmäßig deaktiviert ist, muss zum Deaktivieren der Persistenz ohne Neustart des Redis-Dienstes nur das Speichern deaktiviert werden Konfiguration .

Zum Deaktivieren zur Laufzeit und zum Überprüfen der folgenden Befehle

Überprüfen Sie die aktuelle Speicherkonfiguration

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

Die gleiche Einstellung ist auch in der Datei redis.conf vorhanden

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

Deaktivieren Sie die Konfiguration zum Speichern

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

Ändern Sie die Datei redis.conf mit der neuen Sicherungskonfiguration , sodass die Konfiguration beim Neustart des Redis-Dienstes dauerhaft bleibt

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

Bestätigen Sie die neue Speicherkonfiguration

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

Nun , wenn Sie die Datei redis.conf sucht nun nach speichern Konfiguration gibt es keine Ergebnisse sein

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

8

Für RDB-Snapshots können Sie diese mithilfe von deaktivieren

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

Die Speicherzeilen in redis.conf werden kommentiert und der Redis-Server neu gestartet

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.