Bagaimana cara menonaktifkan persistensi dengan redis?


91

Saya bertanya-tanya bagaimana cara menonaktifkan kehadiran di redis. Ada kemungkinan melakukan ini di sini: http://redis.io/topics/persistence . Maksud saya dalam arti yang sama persis seperti yang dijelaskan di sana. Bantuan apa pun akan sangat dihargai!


Saya merasa terkejut, jika tidak mengganggu, bahwa tidak ada instruksi di situs web resmi tentang ini atau tidak ada banyak informasi di internet tentang ini (Lihat bahwa stackoverflow.com/questions/19581059/… memiliki lebih banyak suara dan didokumentasikan lebih baik daripada ini). Secara keseluruhan mengingat Redis sering digunakan sebagai database non-persisten.
Akronix

Jawaban:


111

Untuk menonaktifkan semua persistensi data di Redis, lakukan hal berikut di redis.conffile:

  1. Nonaktifkan AOF dengan mengatur appendonlydirektif konfigurasi ke no(ini adalah nilai default). seperti ini:

    appendonly no
    
  2. Nonaktifkan snapshot RDB dengan mengomentari semua savearahan konfigurasi (ada 3 yang ditentukan secara default)

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

Setelah berubah, pastikan Anda memulai ulang Redis untuk menerapkannya.

Alternatifnya, Anda dapat menggunakan CONFIG SETperintah untuk menerapkan perubahan ini selama runtime (pastikan Anda juga melakukan a CONFIG REWRITEuntuk mempertahankan perubahan).

Catatan: tergantung pada versi Redis Anda, ada perubahan lain yang mencegah Redis mengakses disk untuk tugas terkait replikasi.


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

2
Saya telah mengonfigurasi Redis saya untuk tidak menyimpan data ke disk dengan mengomentari tiga savearahan. Saya dapat melihat bahwa itu tidak lagi secara berkala mengambil data. Namun, saya masih melihat file .rdb ditulis ke disk setiap kali saya mematikan server saya. Bisakah itu dibuat, mungkin karena proses failover?
Jolta

1
Untuk benar-benar membuat ini efektif, Anda dapat menggunakan perintah yang tercantum di sini untuk melakukannya melalui cli: stackoverflow.com/a/34736871/2904315 Atau Anda bisa mengubah file redis.conf seperti yang dijelaskan dalam jawaban ini dan kemudian memulai ulang layanan dengan:systemctl restart redis
Akronix

Di linux, redis.conffile tersebut terletak di/etc/redis/redis.conf
Amin Shojaei

77

Jika Anda ingin menghindari bermain-main dengan redis.conf(dev / test environment), Anda dapat melakukannya melalui baris perintah dengan

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

(diuji dengan server redis 3.2.6dan 5.0.5)


1
Apakah Anda yakin --appendonly noitu perlu? Bukankah itu mati secara default?
aleclarson

4
Bisa jadi benar. Tapi tentu tidak ada salahnya menambahkannya di sana, hanya untuk berjaga-jaga, yang kami inginkan adalah menonaktifkan semua jenis ketekunan;)
Kostis

hmm, tidak berhasil untuk saya di Windows 10 di WSL (Ubuntu 16)
James Gentes

@JamesGentes apa kesalahannya. Ini berfungsi di Fedora 29 saya dengan Redis 5.0.3, mengujinya sekarang. Mungkin Anda perlu menyampaikan argumen dengan cara yang berbeda di Windows? Apa versi Redisnya? redis-server --helpmungkin bisa memberikan beberapa wawasan
Kostis

1
Bekerja pada versi 5.0.5 juga.
abbas

18

Karena AOF (appendonly) dinonaktifkan secara default, hanya ada satu hal yang harus dilakukan untuk menonaktifkan persistensi tanpa restart layanan redis adalah menonaktifkan konfigurasi penyimpanan .

Untuk menonaktifkannya saat runtime dan memverifikasi jalankan perintah di bawah ini

Periksa konfigurasi penyimpanan saat ini

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

Pengaturan yang sama juga akan ada di file redis.conf

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

Nonaktifkan simpan konfigurasi

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

Ubah file redis.conf dengan konfigurasi penyimpanan baru sehingga konfigurasi tetap permanen saat layanan redis dimulai ulang

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

Konfirmasikan konfigurasi penyimpanan baru

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

Sekarang jika Anda akan memindai file redis.conf untuk menyimpan konfigurasi tidak akan ada hasil

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

8

Untuk snapshot RDB Anda dapat menonaktifkannya dengan menggunakan

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

Ini akan mengomentari baris penyimpanan di redis.conf dan memulai ulang redis-server

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.