Jadual Kandungan
1. Proses kegigihan
2. Mekanisme RDB
3. Mekanisme AOF
4. Bagaimana untuk memilih antara RDB dan AOF
Rumah pangkalan data Redis Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

Sep 30, 2021 am 10:51 AM
aop rdb redis mekanisme kegigihan

Artikel ini akan membawa anda melalui dua mekanisme kegigihan (RDB dan AOP) dalam redis Saya harap ia akan membantu anda!

Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

Redis ialah pangkalan data dalam memori, dan data disimpan dalam memori Walau bagaimanapun, kita semua tahu bahawa data dalam memori berubah dengan cepat dan mudah hilang. Nasib baik, Redis juga menyediakan kami dengan mekanisme kegigihan, iaitu RDB (Redis DataBase) dan AOF (Append Only File). [Cadangan berkaitan: Tutorial video Redis]

Di sini diandaikan bahawa anda sudah memahami sintaks asas redis Tapak web abjad tertentu mempunyai tutorial yang bagus, anda boleh menyemaknya. Saya tidak akan menulis artikel tentang penggunaan asas, semuanya adalah arahan yang biasa digunakan.

Berikut ialah pengenalan kepada dua kaedah ini. Dari cetek ke dalam.

1. Proses kegigihan

Memandangkan data redis boleh disimpan pada cakera, apakah rupa proses ini?

Lima proses berikut diperlukan:

(1) Pelanggan menghantar operasi tulis ke pelayan (data berada dalam ingatan klien).

(2) Pelayan pangkalan data menerima data permintaan tulis (data berada dalam ingatan pelayan).

(3) Pelayan memanggil panggilan sistem tulis untuk menulis data ke cakera (data berada dalam penimbal memori sistem).

(4) Sistem pengendalian memindahkan data dalam penimbal kepada pengawal cakera (data berada dalam cache cakera).

(5) Pengawal cakera menulis data ke medium fizikal cakera (data sebenarnya jatuh pada cakera).

5 proses ini adalah proses penjimatan biasa dalam keadaan yang ideal, tetapi dalam kebanyakan kes, mesin kami, dsb. akan mengalami pelbagai kegagalan:

(1) Jika Redis pangkalan data gagal, selagi langkah ketiga di atas selesai, ia boleh diteruskan dan disimpan, dan sistem pengendalian akan menyelesaikan dua langkah yang tinggal untuk kita.

(2) Jika sistem pengendalian gagal, 5 langkah di atas mesti diselesaikan.

Di sini kami hanya mempertimbangkan kemungkinan kegagalan semasa proses menyimpan Malah, data yang disimpan juga mungkin rosak, memerlukan mekanisme pemulihan tertentu, tetapi ini tidak akan dilanjutkan di sini. Pertimbangan utama sekarang ialah bagaimana redis melaksanakan lima langkah menyimpan cakera di atas. Ia menyediakan dua mekanisme dasar, iaitu RDB dan AOF.

2. Mekanisme RDB

RDB sebenarnya menyimpan data pada cakera dalam bentuk syot kilat. Apakah syot kilat? Anda boleh memahaminya sebagai mengambil foto data pada masa semasa dan menyimpannya.

Kegigihan RDB merujuk kepada menulis syot kilat bagi set data dalam memori pada cakera dalam selang masa yang ditentukan. Ia juga merupakan kaedah kegigihan lalai Kaedah ini menulis data dalam memori ke fail binari dalam bentuk petikan Nama fail lalai ialah dump.rdb.

Selepas kami memasang redis, semua konfigurasi berada dalam fail redis.conf, yang menyimpan pelbagai konfigurasi dua mekanisme kegigihan, RDB dan AOF.

Memandangkan mekanisme RDB menyimpan semua data pada masa tertentu dengan menjana syot kilat, mesti ada mekanisme pencetus untuk melaksanakan proses ini. Untuk RDB, tiga mekanisme disediakan: simpan, bgsave dan automasi. Mari kita lihat

1. Kaedah pencetus Simpan

Arahan ini akan menyekat pelayan Redis semasa menjalankan perintah simpan , Redis tidak boleh memproses arahan lain sehingga proses RDB selesai. Proses khusus adalah seperti berikut:

Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

Jika terdapat fail RDB lama apabila pelaksanaan selesai, gantikan yang lama dengan yang baharu. Pelanggan kami mungkin berpuluh-puluh ribu atau ratusan ribu, jadi pendekatan ini jelas tidak digalakkan.

2. kaedah pencetus bgsave

Apabila arahan ini dilaksanakan, Redis akan melakukan operasi syot kilat secara tidak segerak di latar belakang dan syot kilat juga boleh menjawab soalan klien. Proses khusus adalah seperti berikut:

Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

Operasi khusus ialah proses Redis melakukan operasi garpu untuk mencipta proses anak Proses kegigihan RDB bertanggungjawab untuk proses anak dan tamat secara automatik selepas selesai. Penyekatan hanya berlaku semasa fasa garpu dan secara amnya sangat singkat. Pada asasnya semua operasi RDB di dalam Redis menggunakan arahan bgsave.

3. Pencetusan automatik

Pencetusan automatik dilakukan oleh fail konfigurasi kami. Dalam fail konfigurasi redis.conf, terdapat konfigurasi berikut, yang boleh kami tetapkan:

①save: Ini digunakan untuk mengkonfigurasi keadaan kegigihan RDB yang mencetuskan Redis, iaitu, masa untuk menyimpan data dalam ingatan kepada cakera keras. Contohnya "simpan m n". Menunjukkan bahawa bgsave dicetuskan secara automatik apabila set data diubah suai n kali dalam m saat.

Konfigurasi lalai adalah seperti berikut:

# bermaksud jika sekurang-kurangnya 1 nilai kunci berubah dalam 900 saat, simpan 900 1# bermakna jika sekurang-kurangnya 10 nilai kunci berubah dalam masa 300 saat, simpan 300 10# bermakna jika sekurang-kurangnya 10 nilai kunci berubah dalam 60 saat Jika nilai 10000 kekunci berubah, maka simpan 60 10000

tidak memerlukan ketekunan, maka anda boleh mengulas semua simpan baris untuk melumpuhkan fungsi simpan.

②stop-writes-on-bgsave-error: Nilai lalai ialah ya. Apabila RDB didayakan dan penyimpanan data latar belakang terakhir gagal, sama ada Redis berhenti menerima data. Ini akan membuatkan pengguna sedar bahawa data tidak disimpan dalam cakera dengan betul, jika tidak, tiada siapa yang akan menyedari bahawa bencana telah berlaku. Jika Redis dimulakan semula, ia boleh mula menerima data semula

③rdbmampatan ialah ya. Untuk syot kilat yang disimpan pada cakera, anda boleh menetapkan sama ada untuk memampatkannya untuk penyimpanan.

④rdbchecksum: Nilai lalai ialah ya. Selepas menyimpan syot kilat, kami juga boleh membenarkan redis menggunakan algoritma CRC64 untuk pengesahan data, tetapi ini akan meningkatkan penggunaan prestasi sebanyak kira-kira 10%. Jika anda ingin mendapatkan peningkatan prestasi maksimum, anda boleh mematikan fungsi ini.

⑤dbfilename: Tetapkan nama fail syot kilat, lalainya ialah dump.rdb

⑥dir: Tetapkan laluan storan fail syot kilat ini mestilah direktori, bukan fail nama.

Kami boleh mengubah suai konfigurasi ini untuk mencapai kesan yang kami inginkan. Oleh kerana kaedah ketiga dikonfigurasikan, kami membandingkan dua yang pertama:

Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

4 Kelebihan dan keburukan RDB

① Kelebihan

(1) Fail RDB padat dan disandarkan sepenuhnya, menjadikannya sangat sesuai untuk sandaran dan pemulihan bencana.

(2) Apabila menjana fail RDB, proses utama redis akan memotong() proses anak untuk mengendalikan semua kerja menyimpan Proses utama tidak perlu melakukan sebarang operasi IO cakera.

(3) RDB lebih pantas daripada AOF apabila memulihkan set data yang besar.

② Kelemahan

Syot kilat RDB ialah sandaran penuh, yang menyimpan bentuk data memori bersiri binari dan sangat padat dalam storan. Apabila ketekunan syot kilat dilakukan, proses anak akan dimulakan secara khusus untuk kegigihan syot kilat Proses anak akan memiliki data memori proses induk Pengubahsuaian pada memori oleh proses induk tidak akan ditunjukkan oleh proses anak data yang diubah suai semasa kegigihan syot kilat tidak akan dicerminkan disimpan, data mungkin hilang.

3. Mekanisme AOF

Sandaran penuh sentiasa memakan masa yang lebih berkesan arahan yang diterima dilampirkan pada fail melalui fungsi tulis. Pemahaman yang popular ialah pembalakan.

1 Prinsip Kegigihan

Lihat gambar di bawah untuk prinsipnya:

Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

Apabila arahan tulis datang, ia disimpan terus dalam fail AOF kami.

2. Prinsip penulisan semula fail

Kaedah AOF juga membawa masalah lain. Fail kegigihan akan menjadi lebih besar dan lebih besar. Untuk memampatkan fail kegigihan aof. Redis menyediakan arahan bgrewriteaof. Simpan data dalam memori ke fail sementara dalam bentuk arahan, dan pada masa yang sama memotong proses baharu untuk menulis semula fail.

Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

Kendalian menulis semula fail aof tidak membaca fail aof lama, tetapi menulis semula keseluruhan kandungan pangkalan data dalam ingatan kepada yang baharu menggunakan fail aof, iaitu agak serupa dengan syot kilat.

3 AOF juga mempunyai tiga mekanisme pencetus

(1) Penyegerakan untuk setiap pengubahsuaian sentiasa: kegigihan penyegerakan akan dicetuskan setiap kali data perubahan berlaku Serta-merta rakaman ke cakera mempunyai prestasi yang lemah tetapi integriti data yang baik

(2) Penyegerakan setiap saat: operasi tak segerak, rakaman setiap saat Jika mesin mati dalam masa satu saat, data akan hilang

( 3) No berbeza: Jangan sesekali menyegerakkan

4. Kelebihan

(1) AOF boleh melindungi data daripada kehilangan dengan lebih baik, secara amnya AOF Operasi fsync akan dilakukan melalui benang latar belakang setiap 1 saat dan sehingga 1 saat data akan hilang. (2) Fail log AOF tidak mempunyai sebarang overhed pengalamatan cakera, prestasi penulisan sangat tinggi, dan fail tidak mudah rosak.

(3) Walaupun fail log AOF terlalu besar, operasi penulisan semula latar belakang tidak akan menjejaskan pembacaan dan penulisan pelanggan.

(4) Arahan fail log AOF direkodkan dengan cara yang sangat mudah dibaca Ciri ini sangat sesuai untuk pemulihan kecemasan pemadaman tidak sengaja. Sebagai contoh, seseorang secara tidak sengaja mengosongkan semua data menggunakan arahan flushall selagi penulisan semula latar belakang belum berlaku pada masa ini, fail AOF boleh disalin serta-merta, perintah flushall yang terakhir dipadamkan, dan kemudian fail AOF diletakkan semula. . Pulihkan semua data secara automatik melalui mekanisme pemulihan

5. Kelemahan

(1) Untuk data yang sama, fail log AOF biasanya lebih besar daripada fail snapshot data RDB

(2) Selepas AOF dihidupkan, QPS tulis yang disokong akan lebih rendah daripada QPS tulis yang disokong oleh RDB. Oleh kerana AOF biasanya dikonfigurasikan untuk menyegerakkan fail log sekali sesaat, sudah tentu, fsync sekali sesaat, prestasinya masih sangat tinggi

(3) Terdapat pepijat dalam AOF sebelum ini, dan datanya adalah diproses melalui log yang direkodkan oleh AOF Semasa pemulihan, data yang sama tidak dipulihkan.

4. Bagaimana untuk memilih antara RDB dan AOF

Jika anda memilih, kedua-duanya bersama-sama akan menjadi lebih baik. Kerana anda memahami dua mekanisme kegigihan, selebihnya bergantung pada keperluan anda sendiri Anda mungkin tidak semestinya memilih satu berdasarkan keperluan yang berbeza, tetapi ia biasanya digunakan dalam kombinasi. Terdapat gambar untuk diringkaskan:

Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel

Selepas membandingkan ciri ini, selebihnya terpulang kepada anda.

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !

Atas ialah kandungan terperinci Ketahui tentang RDB dan kegigihan AOP dalam redis dalam satu artikel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membina Mod Kluster Redis Cara Membina Mod Kluster Redis Apr 10, 2025 pm 10:15 PM

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Cara menggunakan perintah redis Cara menggunakan perintah redis Apr 10, 2025 pm 08:45 PM

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Cara membersihkan data redis Cara membersihkan data redis Apr 10, 2025 pm 10:06 PM

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Cara menggunakan redis berulir tunggal Cara menggunakan redis berulir tunggal Apr 10, 2025 pm 07:12 PM

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

Cara membaca kod sumber redis Cara membaca kod sumber redis Apr 10, 2025 pm 08:27 PM

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Cara melaksanakan redis yang mendasari Cara melaksanakan redis yang mendasari Apr 10, 2025 pm 07:21 PM

Redis menggunakan jadual hash untuk menyimpan data dan menyokong struktur data seperti rentetan, senarai, jadual hash, koleksi dan koleksi yang diperintahkan. Redis berterusan data melalui snapshots (RDB) dan menambah mekanisme tulis sahaja (AOF). Redis menggunakan replikasi master-hamba untuk meningkatkan ketersediaan data. Redis menggunakan gelung acara tunggal untuk mengendalikan sambungan dan arahan untuk memastikan atom dan konsistensi data. Redis menetapkan masa tamat tempoh untuk kunci dan menggunakan mekanisme memadam malas untuk memadamkan kunci tamat tempoh.

Cara Membaca Gilir Redis Cara Membaca Gilir Redis Apr 10, 2025 pm 10:12 PM

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Cara Melihat Semua Kekunci di Redis Cara Melihat Semua Kekunci di Redis Apr 10, 2025 pm 07:15 PM

Untuk melihat semua kunci di Redis, terdapat tiga cara: Gunakan perintah kunci untuk mengembalikan semua kunci yang sepadan dengan corak yang ditentukan; Gunakan perintah imbasan untuk melangkah ke atas kunci dan kembalikan satu set kunci; Gunakan arahan maklumat untuk mendapatkan jumlah kunci.

See all articles