Contoh analisis kegigihan AOF dalam Redis
1. Pengenalan kepada AOF
RDB ialah kaedah kegigihan yang boleh merekodkan status pangkalan data dengan menyimpan pasangan nilai kunci dalam pangkalan data. AOF ialah kaedah kegigihan yang menyimpan keadaan pangkalan data dengan merekodkan arahan tulis yang dilaksanakan oleh pelayan Redis.
Contohnya, untuk arahan berikut:
Kaedah kegigihan RDB adalah untuk menyimpan tiga pasangan nilai kunci str1, str2, str3 ke dalam Fail RDB, dan kegigihan AOF menyimpan perintah set, sadd, dan lpush yang dilaksanakan ke fail AOF.
2. Konfigurasi AOF
Dalam fail konfigurasi redis.conf di bawah MOD APPEND SAHAJA:
①, lampirkan: Nilai lalai ialah tidak, yang bermaksud bahawa redis menggunakan kegigihan rdb secara lalai Jika anda ingin mendayakan kegigihan AOF, anda perlu menukar lampiran kepada ya.
②, appendfilename: daripada nama fail, lalainya ialah "appendonly.aof"
③, appendfsync: konfigurasi strategi kegigihan;
tidak bermaksud untuk tidak melaksanakan fsync, dan sistem pengendalian memastikan bahawa data disegerakkan ke cakera, yang merupakan yang terpantas, tetapi tidak begitu selamat
sentiasa bermakna fsync dilaksanakan untuk setiap tulis untuk memastikan penyegerakan data ke cakera, kecekapan adalah sangat rendah
Pilihan "everysec" yang melaksanakan fsync sekali sesaat boleh menyebabkan data hilang dalam masa 1 saat ini. Biasanya pilih everysec untuk mengimbangi keselamatan dan kecekapan.
④, no-appendfsync-on-rewrite: Apabila aof ditulis semula atau ditulis pada fail rdb, sejumlah besar IO akan dilakukan Pada masa ini, untuk setiap mod setiap saat dan sentiasa aof, melaksanakan fsync akan menyebabkan penyekatan terlalu lama, medan no-appendfsync-on-rewrite ditetapkan kepada tidak secara lalai. Jika aplikasi mempunyai keperluan kependaman yang tinggi, medan ini boleh ditetapkan kepada ya, jika tidak, ia ditetapkan kepada tidak, yang merupakan pilihan yang lebih selamat untuk ciri kegigihan. Menetapkannya kepada ya bermakna bahawa operasi tulis baharu tidak akan disegerakkan semasa penulisan semula, dan akan disimpan sementara dalam memori, dan akan ditulis selepas penulisan semula selesai. Lalai ialah tidak, dan ya disyorkan. Dasar fsync lalai Linux ialah 30 saat. 30 saat data mungkin hilang. Nilai lalai ialah tidak.
Nilai lalai peratusan auto-aof-rewrite ialah 100. konfigurasi penulisan semula automatik aof, apabila saiz fail aof semasa melebihi peratusan saiz fail aof yang ditulis semula terakhir, ia akan ditulis semula, iaitu, apabila fail aof berkembang ke saiz tertentu, Redis boleh memanggil bgrewriteaof untuk menulis semula fail log . Apabila saiz fail AOF mencapai dua kali ganda saiz penulisan semula log terakhir (ditetapkan kepada 100), proses penulisan semula log baharu akan dimulakan secara automatik.
auto-aof-rewrite-min-size ditetapkan kepada 64MB. Untuk mengelakkan keperluan untuk menulis semula apabila peratusan yang dipersetujui dicapai, anda boleh menetapkan saiz fail minimum.
⑦, aof-load-truncated: Fail aof mungkin tidak lengkap pada penghujung Apabila redis bermula, data fail aof dimuatkan ke dalam memori. Mulakan semula mungkin berlaku selepas sistem pengendalian hos di mana redis terletak, terutamanya jika sistem fail ext4 tidak menambah pilihan data=tertib Fenomena ini berlaku atau penamatan tidak normal pilih untuk membiarkan redis keluar , atau mengimport sebanyak mungkin data. Sebaik sahaja pilihan ya dipilih, log akan dihantar secara automatik kepada klien dan dimuatkan apabila fail aof yang dipotong diimport. Jika jawapannya tidak, pengguna perlu menjalankan perintah redis-check-aof secara manual untuk membaiki fail AOF. Nilai lalai ialah ya.
3 Hidupkan AOF
Tukar konfigurasi lampiran redis.conf kepada ya.
Lokasi tempat AOF menyimpan fail adalah sama dengan lokasi RDB menyimpan fail ia dikonfigurasikan melalui dir fail konfigurasi redis.conf:
1 |
|
Maksudnya, penulisan semula fail AOF tidak menyusun semula fail asal, tetapi membaca secara langsung pasangan nilai kunci sedia ada pelayan, dan kemudian menggunakan arahan untuk menggantikan nilai kunci yang direkodkan sebelum ini berpasangan. Berbilang arahan untuk menjana fail baharu dan menggantikan fail AOF yang asal.
Mekanisme pencetus penulisan semula fail AOF: melalui peratusan auto-aof-rewrite dalam fail konfigurasi redis.conf: nilai lalai ialah 100 dan auto-aof-rewrite-min-size: konfigurasi 64mb , maksudnya, secara lalai Redis akan merekodkan saiz AOF apabila ia terakhir ditulis semula Konfigurasi lalai adalah untuk mencetuskan apabila saiz fail AOF adalah dua kali ganda saiz selepas penulisan semula terakhir dan fail lebih besar daripada 64M.
Biar saya nyatakan di sini sekali lagi bahawa kita tahu bahawa Redis ialah kerja satu utas Jika mengambil masa yang lama untuk menulis semula AOF, Redis tidak akan dapat bekerja lama semasa menulis semula AOF Berurusan dengan arahan lain, ini jelas tidak boleh ditoleransi. Untuk mengatasi masalah ini, penyelesaian Redis ialah meletakkan program penulisan semula AOF ke dalam subrutin Ini mempunyai dua faedah:
① Semasa penulisan semula AOF proses anak, proses pelayan (proses induk) boleh Diteruskan. memproses arahan lain.
Menggunakan proses anak dan bukannya benang boleh mengelak daripada menggunakan kunci dan memastikan keselamatan data, kerana proses anak mempunyai salinan data proses induk.
Menggunakan sub-proses menyelesaikan masalah di atas, tetapi masalah baharu juga timbul: kerana proses pelayan masih memproses arahan lain semasa AOF menulis semula sub-proses, arahan baharu ini juga mungkin menjalankan operasi pada pangkalan data . Operasi pengubahsuaian menjadikan status pangkalan data semasa dan status fail AOF yang ditulis semula tidak konsisten.
Untuk menyelesaikan masalah status data yang tidak konsisten, pelayan Redis menyediakan penimbal tulis semula AOF ini digunakan selepas proses anak dibuat Apabila pelayan Redis melaksanakan arahan tulis, ia akan Ini arahan tulis juga dihantar ke penimbal tulis semula AOF. Apabila proses anak melengkapkan penulisan semula AOF, ia akan menghantar isyarat kepada proses induk Selepas proses induk menerima isyarat, ia akan memanggil fungsi untuk menulis kandungan penimbal penulisan semula AOF ke fail AOF baharu.
Ini meminimumkan kesan penulisan semula AOF pada pelayan.
6. Kelebihan dan Kekurangan AOF
Kelebihan:
① kaedah kegigihan AOF menyediakan pelbagai frekuensi penyegerakan, walaupun kekerapan penyegerakan lalai digunakan untuk menyegerakkan. kedua Pada satu masa, Redis hanya kehilangan 1 saat data paling banyak.
② Fail AOF dibina menggunakan perintah Redis append Oleh itu, walaupun Redis hanya boleh menulis serpihan arahan pada fail AOF, adalah mudah untuk membetulkan fail AOF menggunakan alat redis-check-aof.
Format fail AOF mudah dibaca, yang membolehkan pengguna memprosesnya dengan lebih fleksibel. Sebagai contoh, jika kami secara tidak sengaja menggunakan arahan FLUSHALL secara tidak sengaja, sebelum penulisan semula sedang dijalankan, kami boleh mengalih keluar perintah FLUSHALL terakhir secara manual dan kemudian menggunakan AOF untuk memulihkan data.
Kelemahan:
① Untuk Redis dengan data yang sama, fail AOF biasanya lebih besar daripada fail RDF.
Kekerapan penyegerakan lalai AOF adalah sekali sesaat, walaupun ia menyediakan pelbagai pilihan kekerapan penyegerakan, tetapi prestasinya masih tinggi. Apabila beban Redis tinggi, RDB memberikan jaminan prestasi yang lebih baik daripada AOF.
③, RDB menggunakan syot kilat untuk mengekalkan keseluruhan data Redis, manakala AOF hanya menambahkan setiap arahan yang dilaksanakan pada fail AOF, jadi secara teori, RDB lebih teguh daripada AOF. Menurut dokumentasi rasmi, AOF mempunyai beberapa pepijat yang tidak ada pada RDB.
Jadi bagaimana kita harus memilih antara kaedah kegigihan AOF dan RDB?
Jika anda boleh bertolak ansur dengan kehilangan data dalam tempoh yang singkat, tidak syak lagi bahawa menggunakan RDB adalah yang terbaik Menjana syot kilat RDB secara kerap adalah sangat mudah untuk sandaran pangkalan data, dan RDB memulihkan set data lebih cepat daripada Kelajuan pemulihan AOF harus pantas, dan menggunakan RDB juga boleh mengelakkan beberapa pepijat tersembunyi AOF, jika tidak, gunakan penulisan semula AOF. Walau bagaimanapun, secara amnya disyorkan untuk tidak menggunakan mekanisme kegigihan tertentu sahaja, tetapi menggunakan kedua-duanya bersama-sama Dalam kes ini, apabila redis dimulakan semula, fail AOF akan dimuatkan terlebih dahulu untuk memulihkan data asal, kerana dalam keadaan biasa Set data disimpan. dalam fail AOF adalah lebih lengkap daripada set data yang disimpan dalam fail RDB. Mungkin pada masa hadapan, pegawai Redis akan menggabungkan dua kaedah kegigihan ke dalam satu mod kegigihan.
Atas ialah kandungan terperinci Contoh analisis kegigihan AOF dalam Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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 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.

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.

Menggunakan REDIS untuk mengunci operasi memerlukan mendapatkan kunci melalui arahan SETNX, dan kemudian menggunakan perintah luput untuk menetapkan masa tamat tempoh. Langkah-langkah khusus adalah: (1) Gunakan arahan SETNX untuk cuba menetapkan pasangan nilai utama; (2) Gunakan perintah luput untuk menetapkan masa tamat tempoh untuk kunci; (3) Gunakan perintah DEL untuk memadam kunci apabila kunci tidak lagi diperlukan.

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 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.

Kerugian data REDIS termasuk kegagalan memori, gangguan kuasa, kesilapan manusia, dan kegagalan perkakasan. Penyelesaiannya adalah: 1. 2. Salin ke beberapa pelayan untuk ketersediaan tinggi; 3. Ha dengan redis sentinel atau cluster redis; 4. Buat gambar untuk membuat sandaran data; 5. Melaksanakan amalan terbaik seperti kegigihan, replikasi, gambar, pemantauan, dan langkah -langkah keselamatan.

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.
