Apa nama lengkap Redis RDB? Redis mode operasi persistensi data memori RDB

Nama lengkap RDB adalahRedis database.

  • Seperti namanya, RDB adalah database Redis yang digunakan untuk menyimpan data.
  • Oleh karena itu, melalui ketekunan RDB, data yang disimpan dalam memori Redis ditulis ke file RDB dan disimpan ke disk untuk mencapai kegigihan.
  • Fitur Redis adalah dapat menyimpan data, yaitu menulis data di memori ke disk untuk memastikan tidak ada data yang hilang, dan juga dapat memuat data dari disk ke memori.

Apa nama lengkap Redis RDB? Redis mode operasi persistensi data memori RDB

Pengoperasian Redis pada awalnya semua didasarkan pada memori, sehingga kinerjanya sangat tinggi, tetapi begitu program ditutup, datanya hilang.

Oleh karena itu, kita perlu menulis data dalam memori ke disk pada interval tertentu, yaitu Snapshot dalam jargon.

Saat memulihkan, file snapshot ditulis langsung ke memori.

Ini juga salah satu perbedaan utama antara Redis dan Memcached, karena Memcached tidak memiliki kemampuan persistensi.

Untuk persistensi data memori Redis, Redis memberi kami metode berikut:

  • Metode Snapshot (RDB, Redis DataBase): menulis data memori ke disk dalam bentuk biner pada saat tertentu;
  • Tambahkan File Saja (AOF, Tambahkan File Saja), rekam semua perintah operasi, dan tambahkan ke file dalam bentuk teks;
  • Persistensi hibrida, metode baru setelah Redis 4.0, persistensi hibrida menggabungkan keunggulan RDB dan AOF.Saat menulis, pertama tulis data saat ini ke awal file dalam bentuk RDB, dan kemudian simpan perintah operasi selanjutnya ke file dalam bentuk AOF, yang tidak hanya dapat memastikan kecepatan restart Redis, tetapi juga mengurangi risiko kehilangan data.

Karena setiap skema persistensi memiliki skenario penggunaan tertentu.

Mode operasi persistensi data memori Redis RDB

  • RDB (Redis DataBase) adalah proses penulisan memori snapshot (Snapshot) pada saat tertentu ke disk dalam bentuk biner.
  • Snapshot memori adalah apa yang kami katakan di atas.Ini mengacu pada catatan keadaan data dalam memori pada saat tertentu.
  • Ini mirip dengan mengambil foto, ketika Anda mengambil foto seorang teman, sebuah foto dapat langsung merekam semua gambar dari teman tersebut.
  • Ada dua cara untuk memicu RDB: satu adalah pemicu manual, dan yang lainnya adalah pemicu otomatis.

Memicu RDB secara manual

Ada dua operasi untuk memicu persistensi secara manual:savebgsave.

Perbedaan utama di antara mereka adalah apakah akan memblokir eksekusi utas utama Redis atau tidak.

1. simpan perintah

Menjalankan perintah simpan di sisi klien akan memicu kegigihan Redis, tetapi juga akan membuat Redis dalam keadaan memblokir. Itu tidak akan menanggapi perintah yang dikirim oleh klien lain sampai RDB dipertahankan, jadi harus digunakan dengan hati-hati dalam lingkungan produksi.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Proses menjalankan perintah ditunjukkan pada gambar 

2. perintah bgsave

  • bgsave (penyimpanan latar belakang) adalah penyimpanan latar belakang.
  • Perbedaan terbesar antara itu dan perintah simpan adalah bgsave akan melakukan fork proses anak untuk melakukan kegigihan.
  • Seluruh proses hanya terjadi ketika proses anak bercabang.Hanya ada penyumbatan singkat.
  • Setelah proses anak dibuat, proses utama Redis dapat menanggapi permintaan dari klien lain.

dengan memblokir seluruh prosessavedibandingkan dengan perintahbgsaveCommand jelas lebih cocok untuk kita gunakan.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

Secara otomatis memicu RDB

Setelah berbicara tentang pemicu manual, mari kita lihat pemicu otomatis.Kami dapat mengonfigurasi kondisi untuk pemicu otomatis di file konfigurasi.

1. simpan mn

  • simpan mn berarti dalam m detik, jika n kunci berubah, kegigihan dipicu secara otomatis.Parameter m dan n dapat ditemukan di file konfigurasi Redis.
  • Misalnya, simpan 60 1 berarti dalam 60 detik, selama satu kunci berubah, persistensi RDB akan dipicu.
  • Inti dari persistensi pemicu otomatis adalah jika kondisi pemicu yang ditetapkan terpenuhi, Redis akan secara otomatis menjalankan perintah bgsave sekali.

Catatan: Ketika beberapa perintah simpan mn disetel, satu kondisi apa pun akan memicu kegigihan.

Misalnya, kami mengatur dua perintah save mn berikut:

save 60 10
save 600 20
  • Ketika nilai kunci Redis berubah 60 kali dalam 10 detik, kegigihan akan dipicu;
  • Jika kunci Redis berubah dalam 60 detik, dan jika nilainya berubah kurang dari 10 kali, maka Redis akan menentukan apakah kunci Redis telah dimodifikasi setidaknya 600 kali dalam 20 detik, dan jika demikian, memicu kegigihan.

2. Flushall

  • Perintah flushall digunakan untuk menyiram database Redis.
  • Ini harus digunakan dengan hati-hati di lingkungan produksi.
  • Ketika Redis menjalankan perintah flushall, itu memicu kegigihan otomatis dan menghapus file RDB.

3. Pemicu sinkronisasi master-slave

Dalam replikasi master-slave Redis, ketika node slave melakukan operasi replikasi penuh, node master akan menjalankan perintah bgsave untuk mengirim file RDB ke node slave. Proses ini secara otomatis memicu kegigihan Redis.

Redis dapat menanyakan parameter konfigurasi saat ini melalui perintah.

Format perintah query adalah:config get xxx

Misalnya, jika Anda ingin mendapatkan pengaturan nama penyimpanan file RDB, Anda dapat menggunakan config get dbfilename .

Efek eksekusi adalah sebagai berikut:

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

Karena server Redis akan memblokir saat memuat file RDB hingga pemuatan selesai, dapat menyebabkan waktu yang lama dan situs web tidak dapat diakses.

Jika Anda ingin menghapus file cache RDB dump.rdb dari Redis secara manual, Anda dapat menggunakan perintah berikut untuk menemukan jalur penyimpanan file dump.rdb:

find / -name dump.rdb
  • Kemudian, hapus file cache dump.rdb secara manual melalui SSH.

Redis mengatur konfigurasi RDB

Mengenai pengaturan konfigurasi RDB, Anda dapat menggunakan dua cara berikut:

  1. Ubah file konfigurasi Redis secara manual
  2. Gunakan pengaturan baris perintah, config set dir "/usr/data" adalah perintah penyimpanan untuk memodifikasi file RDB

Catatan: Konfigurasi di redis.conf dapat diperoleh melalui config get xxx dan dimodifikasi melalui nilai config set xxx, dan metode memodifikasi file konfigurasi Redis secara manual efektif secara global, yaitu parameter yang ditetapkan dengan me-restart server Redis tidak akan hilang, tetapi dimodifikasi menggunakan perintah , itu akan hilang setelah Redis dimulai ulang.

Namun, jika Anda ingin mengubah file konfigurasi Redis secara manual agar segera berlaku, Anda harus memulai ulang server Redis, dan metode perintah tidak memerlukan memulai ulang server Redis.

Pemulihan file RDB

Ketika server Redis dimulai, jika file RDB dump.rdb ada di direktori root Redis, Redis akan secara otomatis memuat file RDB untuk memulihkan data persisten.

Jika tidak ada file dump.rdb di direktori root, silakan pindahkan file dump.rdb ke direktori root Redis terlebih dahulu.

Tentu saja, ada informasi log ketika Redis dimulai, yang akan menunjukkan apakah file RDB dimuat.

Server Redis memblokir saat memuat file RDB hingga pemuatan selesai.

Sekarang kita tahu bahwa persistensi RDB dibagi menjadi dua cara: pemicu manual dan pemicu otomatis:

  1. Keuntungannya adalah file penyimpanannya kecil dan pemulihan data lebih cepat ketika Redis dimulai.
  2. Kelemahannya adalah ada risiko kehilangan data.

Pemulihan file RDB juga sangat sederhana, cukup letakkan file RDB di direktori root Redis, dan Redis akan secara otomatis memuat dan memulihkan data saat dimulai.

Pro dan kontra RDB

1) keuntungan RDB

Konten RDB adalah data biner, menempati lebih sedikit memori, lebih ringkas, dan lebih cocok sebagai file cadangan;

RDB sangat berguna untuk pemulihan bencana, ini adalah file terkompresi yang dapat ditransfer ke server jauh lebih cepat untuk pemulihan layanan Redis;

RDB dapat sangat meningkatkan kecepatan Redis, karena proses Redis utama akan memotong proses anak untuk menyimpan data ke disk.

Proses utama Redis tidak melakukan operasi seperti disk I/O;

Dibandingkan dengan file format AOF, file RDB restart lebih cepat.

2) Kekurangan RDB

Karena RDB hanya dapat menyimpan data untuk interval waktu tertentu, jika layanan Redis secara tidak sengaja dihentikan di tengah, data Redis akan hilang untuk jangka waktu tertentu;

Sebuah proses di mana RDB membutuhkan garpu yang sering untuk menyimpannya di disk menggunakan subentry.

Jika kumpulan data besar, garpu dapat memakan waktu, dan jika kumpulan data besar, kinerja CPU buruk, yang dapat menyebabkan Redis tidak dapat melayani klien selama beberapa milidetik atau bahkan satu detik.

Tentu saja, kita juga dapat menonaktifkan kegigihan untuk meningkatkan efisiensi eksekusi Redis.

Jika Anda tidak sensitif terhadap kehilangan data, Anda dapat melakukan ini saat klien terhubung config set save "" Perintah untuk menonaktifkan kegigihan untuk Redis.

redis.conf, jika dalamsaveKomentari semua konfigurasi di awal, dan ketekunan juga akan dinonaktifkan, tetapi ini umumnya tidak dilakukan.

Harapan Chen Weiliang Blog ( https://www.chenweiliang.com/ ) berbagi "Apa nama lengkap Redis RDB? Redis RDB In-Memory Data Persistence Operation Mode, yang akan membantu Anda.

Selamat datang untuk membagikan tautan artikel ini:https://www.chenweiliang.com/cwl-26677.html

Selamat datang di saluran Telegram blog Chen Weiliang untuk mendapatkan pembaruan terkini!

🔔 Jadilah orang pertama yang mendapatkan "Panduan Penggunaan Alat AI Pemasaran Konten ChatGPT" yang berharga di direktori teratas saluran! 🌟
📚 Panduan ini mengandung nilai yang sangat besar, 🌟Ini adalah kesempatan langka, jangan sampai terlewatkan! ⏰⌛💨
Bagikan dan sukai jika Anda suka!
Berbagi dan suka Anda adalah motivasi berkelanjutan kami!

 

发表 评论

Alamat email Anda tidak akan dipublikasikan. 必填 项 已 用 * 标注

滚动 到 顶部