Terdapat dua jenis kegigihan (AOF dan RDB) dalam Redis Artikel berikut akan membawa anda memahami kedua-dua jenis kegigihan ini, melihat kelebihan dan kekurangannya, dan memperkenalkan sebab Redis memerlukan dua. jenis kegigihan, harap ia membantu semua orang!
Dua kaedah kegigihan Redis
Seperti yang kita sedia maklum, Redis menyediakan dua kaedah kegigihan: AOF dan RDB Mari kita ulas secara ringkas.
Kegigihan RDB
- Kegigihan RDB, adalah untuk menyimpan status pangkalan data pada titik masa semasa ke cakera , juga dikenali sebagai Kegigihan syot kilat.
- RDB boleh dicetuskan secara manual atau dilaksanakan secara berkala mengikut konfigurasi pelayan.
- Fail yang dijana oleh RDB ialah fail binari termampat, yang melaluinya pangkalan data boleh dipulihkan kepada keadaan pada masa itu.
Redis menyediakan arahan kegigihan RDB latar depan - dan arahan kegigihan RDB latar belakang
SAVE
Apabila dilaksanakan di latar depan, arahan Redis lain akan disekat, manakala apabila dilaksanakan di latar belakang, Redis boleh terus memproses. perintah pelanggan. BGSAVE
Dalam fail binari RDB, data pasangan nilai kunci disimpan, menggunakan pengekodan tersuai dimampatkan dengan pengesahan. Ia boleh ditukar kepada boleh dibaca melalui perintah - .
od
Semasa replikasi tuan-hamba, replikasi penuh awal menggunakan fail RDB. -
[Cadangan berkaitan:
Tutorial video Redis]
Kegigihan AOF
Kegigihan AOF , nama penuh ialah - , yang bermaksud kaedah kegigihan yang dilampirkan, di mana arahan tulis disimpan dan bukannya data.
Appen Only File
Proses kegigihan AOF dibahagikan kepada tiga langkah: penambahan arahan, penulisan fail dan penyegerakan fail. - Perintah tambah: Setiap kali pelayan Redis melaksanakan arahan tulis, ia akan menambahkan arahan tulis ke penghujung
- penimbal status pelayan dalam format protokol AOF.
aof_buf
Penulisan fail: Dalam Redis, sebelum setiap gelung peristiwa tamat, fungsi - dipanggil untuk menulis kandungan penimbal
flushAppendOnlyFile
ke fail AOF. aof_buf
Penyegerakan fail: Penyegerakan - merujuk kepada sama ada fail disegerakkan terus ke cakera apabila ia ditulis pada penimbal sistem pengendalian. Melalui konfigurasi, anda boleh memilih tiga kaedah penyegerakan: penyegerakan segera, penyegerakan setiap saat, dan tiada penyegerakan aktif tetapi dikawal oleh sistem pengendalian. Mengenai penimbalan I/O fail:
sync
https://www.litreily.top/2018/10/25/io-cache/
Redis lebih suka menggunakan fail AOF untuk memulihkan data. - Fail AOF lebih besar daripada fail RDB kerana ia menyimpan arahan dan tidak dimampatkan.
- Fail AOF boleh ditulis semula dengan kerap dengan
- untuk mengurangkan arahan pendua, perintah tamat tempoh, arahan digabungkan, dsb.
BGREWRITEAOF
Fail AOF menyokong penulisan semula latar belakang, yang dilaksanakan dalam bentuk - sub-proses. Proses kanak-kanak mempunyai salinan data proses pelayan, memastikan keselamatan data tanpa menggunakan kunci. Selain itu, AOF juga digunakan untuk menulis semula penimbal untuk menyelesaikan ketidakkonsistenan data.
fork
Kebaikan dan keburukan kedua-dua jenis kegigihan
Kelebihan RDB
- Saiz fail kecil dan sesuai untuk disalin untuk sandaran sejuk
- Berbanding dengan AOF, kelajuan sandaran dan pemulihan lebih cepat
Kelemahan RDB
Kelebihan AOF
- Kurang kehilangan data
- Tambah penimbal tulis, tiada pengalamatan diperlukan, Cepat
- tambah-sahaja, tidak perlu melakukan pengalamatan cakera, kecekapan tinggi
Kelemahan AOF
Mengapa Redis memerlukan dua jenis kegigihan?
Selepas semakan di atas, kita dapat melihat bahawa terdapat perbezaan yang jelas antara kegigihan RDB dan AOF.
- Kandungan storan: RDB menyimpan data pada masa tertentu; AOF menyimpan arahan tulis yang dilaksanakan.
- Saiz fail: Fail RDB lebih kecil;
- Kaedah penulisan: RDB boleh menggunakan kaedah penulisan latar depan/latar belakang; AOF menggunakan kaedah menyimpan arahan dalam penimbal setiap kali arahan tulis dilaksanakan, dan boleh ditulis semula dengan kerap.
- Kehilangan data: RDB kehilangan semua data daripada masa henti sehingga penyegerakan RDB terakhir; Beberapa saat data.
Berdasarkan perbandingan ini, kita dapat melihat bahawa Kegigihan RDB lebih sesuai untuk menyimpan data pada satu-satu masa dan menyalinnya ke tempat lain semasa replikasi tuan-hamba atau data penuh dimatikan -pemulihan bencana tapak , dan Kegigihan AOF lebih sesuai sebagai sandaran setempat kerana kehilangan data yang kurang, dan sebagai pemulihan kerosakan apabila Reids menutup telefon dan dimulakan semula. Ini pemahaman sayamengapa Redis memerlukan dua kaedah kegigihan.
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !
Atas ialah kandungan terperinci Terdapat dua kaedah kegigihan dalam Redis Mengapakah dua kaedah kegigihan diperlukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!