Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 24125|Jawab: 2

[Redis] Perbedaan Persistensi Redis Antara RDB dan AOF

[Salin tautan]
Diposting pada 04/02/2021 13.47.27 | | | |
Unduhan Redis windows 64-bit, alamat unduhan resmi
https://www.itsvse.com/thread-2576-1-1.html

Redis memiliki tiga cara untuk memulai
https://www.itsvse.com/thread-4008-1-1.html

Perbedaan antara save dan bgsave di redis
https://www.itsvse.com/thread-4010-1-1.html

Instalasi CentOS 7 Redis 5.0.3 tutorial
https://www.itsvse.com/thread-7201-1-1.html


1. Kata Pengantar

Baru-baru ini, Redis telah digunakan sebagai cache dalam proyek untuk memfasilitasi berbagi data di antara beberapa proses bisnis. Karena data Redis disimpan dalam memori, jika persistensi tidak dikonfigurasi, semua data akan hilang setelah redis dimulai ulang, jadi Anda perlu mengaktifkan fungsi persistensi redis untuk menyimpan data ke disk, dan ketika redis dimulai ulang, Anda dapat memulihkan data dari disk. Redis menyediakan dua cara untuk bertahan, persistensi RDB (prinsipnya adalah membuang catatan database Reids dalam memori ke persistensi RDB pada disk) dan yang lainnya adalah persistensi AOF (prinsipnya adalah menulis log operasi Reids ke file dalam bentuk lampiran). Jadi apa perbedaan antara kedua metode persistensi ini, dan bagaimana memilih untuk mengubahnya? Sebagian besar hal yang saya baca di Internet memperkenalkan cara mengkonfigurasi dan menggunakan kedua metode ini, tetapi tidak ada pengenalan perbedaan antara keduanya, dan dalam skenario aplikasi apa yang akan digunakan.


2. Perbedaan antara keduanya

Persistensi RDB mengacu pada penulisan rekam jepret himpunan data dalam memori ke disk dalam interval waktu tertentu, dan proses operasi yang sebenarnya adalah melakukan fork subproses, pertama-tama menulis himpunan data ke file sementara, lalu mengganti file sebelumnya setelah penulisan berhasil, dan menyimpannya dengan kompresi biner.



Persistensi AOF merekam setiap operasi tulis dan penghapusan yang diproses oleh server dalam bentuk log, dan operasi kueri tidak akan direkam, tetapi akan direkam dalam teks, dan Anda dapat membuka file untuk melihat rekaman operasi terperinci.



3. Kelebihan dan kekurangan keduanya

Apa keuntungan dari RDB?

1). Setelah ini digunakan, maka seluruh database Redis Anda hanya akan berisi satu file, yang sempurna untuk pencadangan file. Misalnya, Anda mungkin ingin mengarsipkan 24 jam terakhir setiap jam, dan juga mengarsipkan 30 hari terakhir setiap hari. Dengan strategi pencadangan seperti itu, kita dapat dengan mudah pulih jika terjadi kegagalan sistem yang dahsyat.

2). RDB adalah pilihan yang sangat baik untuk pemulihan bencana. Karena kita dapat dengan mudah mengompres satu file dan mentransfernya ke media penyimpanan lain.

3). Memaksimalkan kinerja. Untuk proses layanan Redis, satu-satunya hal yang perlu dilakukan saat memulai persistensi adalah membuang proses turunan, dan kemudian proses turunan akan menyelesaikan tugas persistensi ini, yang dapat sangat menghindari proses layanan yang melakukan operasi IO.

4). Dibandingkan dengan mekanisme AOF, jika dataset besar, efisiensi startup RDB akan lebih tinggi.

Apa kerugian dari RDB?

1). Jika Anda ingin memastikan ketersediaan data yang tinggi, yaitu menghindari kehilangan data secara maksimal, maka RDB tidak akan menjadi pilihan yang baik. Karena setelah sistem turun sebelum persistensi yang dijadwalkan, data yang sebelumnya ditulis ke disk akan hilang.

2). Karena RDB membantu dalam persistensi data melalui subproses fork, jika kumpulan data besar, dapat menyebabkan seluruh server menghentikan layanan selama ratusan milidetik, atau bahkan 1 detik.

Apa keuntungan dari AOF?

1). Mekanisme ini dapat membawa keamanan data yang lebih besar, yaitu persistensi data. Ada 3 strategi sinkronisasi yang disediakan di Redis, yaitu sinkronisasi per detik, sinkronisasi per modifikasi, dan desinkronisasi. Bahkan, sinkronisasi per detik juga dilakukan secara asinkron, dan efisiensinya juga sangat tinggi, perbedaannya adalah begitu sistem turun, maka data yang dimodifikasi akan hilang dalam detik ini. Dan setiap kali modifikasi disinkronkan, kita dapat menganggapnya sebagai persistensi sinkronisasi, yaitu setiap perubahan data yang terjadi segera direkam ke disk. Dapat diperkirakan bahwa metode ini adalah yang paling tidak efisien. Adapun tidak ada sinkronisasi, tidak perlu mengatakan lebih banyak, saya pikir semua orang dapat memahaminya dengan benar.

2). Karena mekanisme mengadopsi mode penambahan untuk menulis file log, bahkan jika ada waktu henti selama proses penulisan, konten yang sudah ada dalam file log tidak akan dihancurkan. Namun, jika kita hanya menulis setengah dari data dan sistem mogok kali ini, jangan khawatir, kita dapat menggunakan alat redis-check-aof untuk membantu kita memecahkan masalah konsistensi data sebelum dimulainya Redis berikutnya.

3). Jika log terlalu besar, Redis dapat secara otomatis mengaktifkan mekanisme penulisan ulang. Artinya, Redis terus menulis data modifikasi ke file disk lama dalam mode penambahan, dan Redis juga akan membuat file baru untuk merekam perintah modifikasi mana yang dijalankan selama periode ini. Oleh karena itu, keamanan data dapat dijamin dengan lebih baik saat beralih di antara penulisan ulang.

4). AOF berisi file log yang jelas dan mudah dipahami yang mencatat semua modifikasi. Bahkan, kita juga dapat menyelesaikan rekonstruksi data melalui file ini.

Apa kerugian dari OV?

1). Untuk jumlah kumpulan data yang sama, file OF biasanya lebih besar dari file RDB. RDB memulihkan himpunan data besar lebih cepat daripada AOF.

2). Tergantung pada strategi sinkronisasi, AOF cenderung lebih lambat daripada RDB dalam hal efisiensi berjalan. Singkatnya, efisiensi kebijakan sinkronisasi per detik relatif tinggi, dan efisiensi kebijakan penonaktifan sinkron sama efisiennya dengan RDB.

Kriteria untuk memilih keduanya adalah apakah sistem bersedia mengorbankan beberapa performa dengan imbalan konsistensi cache (AOF) yang lebih tinggi, atau apakah sistem bersedia tidak mengaktifkan pencadangan dengan imbalan performa yang lebih tinggi saat operasi penulisan sering terjadi, dan kemudian melakukan pencadangan (RDB) saat menjalankan Simpan secara manual. RDB memiliki makna konsisten yang lebih final. Namun, lingkungan produksi sebenarnya lebih merupakan kombinasi dari keduanya.


4. Konfigurasi umum

Konfigurasi persistensi RDB

Redis membuang rekam jepret himpunan data ke dalam file dump.rdb. Selain itu, kita juga dapat memodifikasi frekuensi snapshot dump server Redis melalui file konfigurasi, setelah membuka file 6379.conf, kita mencari save, dan kita dapat melihat informasi konfigurasi berikut:



Konfigurasi persisten AOF

Ada tiga cara untuk menyinkronkan di profil Redis, yaitu:



Konfigurasi lengkap:



File baru "appendonly.aof" akan dibuat di bawah direktori pengujian, sebagai berikut:





Mantan:DataTables mengimplementasikan ekspor tabel Excel, CSV, dan pencetakan
Depan:SQL Server mengatur tingkat isolasi transaksi
 Tuan tanah| Diposting pada 08/02/2021 11.45.25 |
Redis memodifikasi nomor port default dan mengatur kata sandi akses
https://www.itsvse.com/thread-2577-1-1.html
Diposting pada 22/09/2021 20.26.16 |
Belajar untuk belajar...
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com