Jak wyłączyć trwałość w Redis?


91

Zastanawiałem się, jak wyłączyć obecność w redis. Jest wzmianka o możliwości zrobienia tego tutaj: http://redis.io/topics/persistence . Mam na myśli dokładnie to samo, co tam opisano. Każda pomoc byłaby bardzo mile widziana!


Zaskoczyło mnie, jeśli nie irytujące, że na oficjalnej stronie nie ma instrukcji na ten temat ani nie ma wielu informacji na ten temat w Internecie (zobacz, że stackoverflow.com/questions/19581059/ ... ma znacznie więcej głosów i jest lepiej udokumentowany niż to). Ogólnie biorąc pod uwagę, że Redis jest często używany jako nietrwała baza danych.
Akronix

Odpowiedzi:


111

Aby wyłączyć utrwalanie wszystkich danych w Redis, wykonaj następujące czynności w redis.confpliku:

  1. Wyłącz AOF, ustawiając appendonlydyrektywę konfiguracji na no(jest to wartość domyślna). lubię to:

    appendonly no
    
  2. Wyłącz tworzenie migawek RDB, komentując wszystkie savedyrektywy konfiguracyjne (są 3, które są zdefiniowane domyślnie)

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

Po zmianie należy ponownie uruchomić Redis, aby je zastosować.

Alternatywnie możesz użyć CONFIG SETpolecenia, aby zastosować te zmiany w czasie wykonywania (po prostu upewnij się, że wykonałeś również a, CONFIG REWRITEaby zachować zmiany).

Uwaga: w zależności od wersji Redis istnieją inne poprawki, które uniemożliwiają Redis dostęp do dysku w celu wykonania zadań związanych z replikacją.


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

2
Skonfigurowałem mój Redis, aby nie zapisywał danych na dysku, wykomentowując trzy savedyrektywy. Widzę, że nie tworzy już okresowych migawek danych. Jednak nadal widzę plik .rdb zapisywany na dysku za każdym razem, gdy wyłączam serwer. Czy mimo to można go utworzyć, być może ze względu na proces przełączania awaryjnego?
Jolta

1
Aby faktycznie było to skuteczne, możesz użyć wymienionych tutaj poleceń, aby to zrobić za pomocą cli: stackoverflow.com/a/34736871/2904315 Lub możesz po prostu zmienić plik redis.conf, jak wyjaśniono w tej odpowiedzi, a następnie ponownie uruchomić usługę:systemctl restart redis
Akronix

W Linuksie redis.confplik znajduje się w/etc/redis/redis.conf
Amin Shojaei

77

Jeśli chcesz uniknąć grania w redis.conf(środowiska deweloperskie / testowe), możesz to zrobić za pomocą wiersza poleceń za pomocą

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

(testowane z serwerem redis 3.2.6i 5.0.5)


1
Czy na pewno --appendonly nojest to konieczne? Czy to nie jest domyślnie wyłączone?
aleclarson

4
To może być prawda. Ale na pewno nie zaszkodzi dodać to tam, tak na wszelki wypadek, chcemy wyłączyć wszystkie typy uporu;)
Kostis

hmm, nie działa dla mnie na Windows 10 w WSL (Ubuntu 16)
James Gentes,

@JamesGentes, jaki jest błąd. Działa w mojej Fedorze 29 z Redis 5.0.3, przetestowałem go teraz. Być może musisz przekazać argumenty w inny sposób w systemie Windows? Jaka jest wersja Redis? redis-server --helpmógłby dać trochę wglądu
Kostis

1
Działa również w wersji 5.0.5.
abbas

17

Ponieważ AOF (appendonly) jest domyślnie wyłączone, jest tylko jedna rzecz, którą należy zrobić, aby wyłączyć utrwalanie bez ponownego uruchamiania usługi redis, to wyłączyć zapisywanie konfiguracji.

Do wyłączania go w czasie wykonywania i weryfikacji wykonywania poniższych poleceń

Sprawdź aktualną konfigurację zapisu

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

To samo ustawienie będzie również obecne w pliku redis.conf

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

Wyłącz zapisywanie konfiguracji

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

Zmodyfikuj plik redis.conf przy użyciu nowej konfiguracji zapisywania, aby konfiguracja pozostała trwała po ponownym uruchomieniu usługi redis

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

Potwierdź nową konfigurację zapisu

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

Jeśli teraz przeskanujesz plik redis.conf w celu zapisania konfiguracji, nie będzie żadnych wyników

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

8

W przypadku tworzenia migawek RDB można je wyłączyć za pomocą

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

Skomentuje wiersze zapisu w redis.conf i zrestartuje serwer redis

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.