Redis RDB'nin tam adı nedir? Redis RDB bellek veri kalıcılığı çalışma modu

RDB'nin tam adıRedis database.

  • Adından da anlaşılacağı gibi, RDB, verileri depolamak için kullanılan bir Redis veritabanıdır.
  • Bu nedenle, RDB kalıcılığı aracılığıyla, kalıcılığı sağlamak için Redis belleğinde depolanan veriler RDB dosyasına yazılır ve diske kaydedilir.
  • Redis'in özelliği, verileri kalıcı hale getirebilmesi, yani hiçbir verinin kaybolmamasını sağlamak için bellekteki verileri diske yazabilmesi ve ayrıca diskten belleğe veri yükleyebilmesidir.

Redis RDB'nin tam adı nedir? Redis RDB bellek veri kalıcılığı çalışma modu

Redis'in başlangıçtaki işlemlerinin tümü belleğe dayalıdır, bu nedenle performans çok yüksektir, ancak program bir kez kapatıldığında veriler kaybolur.

Bu nedenle, jargon ile Snapshot olan bellek içi verileri belirli aralıklarla diske yazmamız gerekiyor.

Geri yüklerken, anlık görüntü dosyası doğrudan belleğe yazılır.

Bu aynı zamanda Redis ve Memcached arasındaki temel farklardan biridir çünkü Memcached'in kalıcılık özelliği yoktur.

Redis bellek verilerinin kalıcılığı için Redis bize aşağıdaki yöntemleri sağlar:

  • Anlık görüntü yöntemi (RDB, Redis DataBase): bellek verilerini belirli bir anda ikili biçimde diske yazın;
  • Yalnızca Dosya Ekle (AOF, Yalnızca Dosya Ekle), tüm işlem komutlarını kaydedin ve dosyaya metin biçiminde ekleyin;
  • Redis 4.0'dan sonra yeni bir yöntem olan hibrit kalıcılık, hibrit kalıcılık, RDB ve AOF'nin avantajlarını birleştirir.Yazarken, önce mevcut verileri dosyanın başına RDB biçiminde yazın ve ardından sonraki işlem komutlarını yalnızca Redis yeniden başlatma hızını sağlamakla kalmayıp aynı zamanda azaltan AOF biçiminde dosyaya kaydedin. veri kaybı riski.

Çünkü her kalıcılık şemasının kendine özgü kullanım senaryoları vardır.

Redis RDB bellek veri kalıcılığı çalışma modu

  • RDB (Redis DataBase), belirli bir anda bellek anlık görüntüsünün (Snapshot) ikili biçimde diske yazılması işlemidir.
  • Bellek anlık görüntüleri yukarıda söylediklerimizdir.Verilerin belirli bir anda bellekteki durum kaydını ifade eder.
  • Bu fotoğraf çekmeye benzer.Bir arkadaşınızın fotoğrafını çektiğinizde, bir fotoğraf arkadaşınızın tüm görüntülerini anında kaydedebilir.
  • RDB'yi tetiklemenin iki yolu vardır: biri manuel tetikleme, diğeri ise otomatik tetiklemedir.

RDB'yi manuel olarak tetikleyin

Kalıcılığı manuel olarak tetiklemek için iki işlem vardır:savebgsave.

Aralarındaki temel fark, Redis ana iş parçacığının yürütülmesinin engellenip engellenmemesidir.

1. kaydetme komutu

İstemci tarafında save komutunun çalıştırılması, Redis'in kalıcılığını tetikler, ancak Redis'i engelleme durumunda da yapar.RDB kalıcı olana kadar diğer istemciler tarafından gönderilen komutlara yanıt vermez, bu nedenle aşağıdaki durumlarda dikkatli kullanılmalıdır. üretim ortamı.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Komutu yürütme süreci şekilde gösterilmiştir. 

2. bgsave komutu

  • bgsave (arka plan kaydı) bir arka plan kaydıdır.
  • Bununla save komutu arasındaki en büyük fark, bgsave'in kalıcılığı gerçekleştirmek için bir alt süreci çatallamasıdır.
  • Tüm süreç, yalnızca alt süreç çatal olduğunda gerçekleşir.Sadece kısa bir tıkanıklık var.
  • Alt süreç oluşturulduktan sonra, Redis'in ana süreci diğer istemcilerden gelen isteklere yanıt verebilir.

tüm süreci bloke edereksavekomutla karşılaştırıldığındabgsaveKomut açıkçası bizim için daha uygun.

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

RDB'yi otomatik olarak tetikle

Manuel tetiklemeden bahsettikten sonra otomatik tetiklemeye bakalım.Yapılandırma dosyasında otomatik tetikleme için koşulları yapılandırabiliriz.

1. mn'yi kaydet

  • mn kaydet, m saniye içinde n tuş değişirse kalıcılığın otomatik olarak tetikleneceği anlamına gelir.m ve n parametreleri Redis yapılandırma dosyasında bulunabilir.
  • Örneğin, 60 1 kaydet, 60 saniye içinde, bir anahtar değiştiği sürece, RDB kalıcılığının tetikleneceği anlamına gelir.
  • Kalıcılığı otomatik olarak tetiklemenin özü, ayarlanan tetikleme koşulları karşılanırsa Redis'in bgsave komutunu bir kez otomatik olarak yürütmesidir.

Not: Birden çok kaydetme komutu ayarlandığında, herhangi bir koşul kalıcılığı tetikler.

Örneğin, aşağıdaki iki save mn komutunu ayarladık:

save 60 10
save 600 20
  • Redis anahtar değeri 60 saniye içinde 10 kez değiştiğinde kalıcılık tetiklenir;
  • Redis anahtarı 60s içinde değişirse ve değer 10 kereden az değişirse Redis anahtarının 600s içinde en az 20 kere değiştirilip değiştirilmediğini belirleyecek ve eğer öyleyse kalıcılığı tetikleyecektir.

2. Yıkama

  • Flushall komutu, Redis veritabanını temizlemek için kullanılır.
  • Bir üretim ortamında dikkatli kullanılmalıdır.
  • Redis, flushall komutunu çalıştırdığında, otomatik kalıcılığı tetikler ve RDB dosyalarını temizler.

3. Master-slave senkronizasyon tetikleyicisi

Redis master-slave replikasyonunda, slave düğüm tam bir replikasyon işlemi gerçekleştirdiğinde, ana düğüm, RDB dosyasını bağımlı düğüme göndermek için bgsave komutunu yürütür.Bu işlem otomatik olarak Redis kalıcılığını tetikler.

Redis, komutlar aracılığıyla mevcut yapılandırma parametrelerini sorgulayabilir.

Sorgu komutunun formatı şudur:config get xxx

Örneğin, bir RDB dosyasının depolama adı ayarını almak istiyorsanız, kullanabilirsiniz. config get dbfilename .

Yürütme etkisi aşağıdaki gibidir:

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

Redis sunucusu, yükleme tamamlanana kadar RDB dosyasını yüklerken bloke olacağından, uzun bir süreye neden olabilir ve web sitesine erişilemeyebilir.

Redis'in RDB önbellek dosyası dump.rdb'yi manuel olarak silmek istiyorsanız, dump.rdb dosyasının depolama yolunu bulmak için aşağıdaki komutu kullanabilirsiniz▼

find / -name dump.rdb
  • Ardından dump.rdb önbellek dosyasını SSH aracılığıyla manuel olarak silin.

Redis, RDB yapılandırmasını ayarlar

RDB yapılandırmasının ayarlanmasıyla ilgili olarak aşağıdaki iki yolu kullanabilirsiniz:

  1. Redis yapılandırma dosyasını manuel olarak değiştirin
  2. Komut satırı ayarlarını kullanın, config set dir "/usr/data", RDB dosyasını değiştirmek için depolama komutudur

Not: redis.conf dosyasındaki yapılandırma, config get xxx aracılığıyla elde edilebilir ve config set xxx değeri aracılığıyla değiştirilebilir ve Redis yapılandırma dosyasını manuel olarak değiştirme yöntemi genel olarak etkilidir, yani Redis sunucusunu yeniden başlatarak ayarlanan parametreler geçerli olmayacaktır. kaybolur, ancak komut kullanılarak değiştirilirse, Redis yeniden başlatıldıktan sonra kaybolacaktır.

Ancak, hemen etkili olması için Redis yapılandırma dosyasını manuel olarak değiştirmek istiyorsanız, Redis sunucusunu yeniden başlatmanız gerekir ve komut yöntemi, Redis sunucusunun yeniden başlatılmasını gerektirmez.

RDB dosya kurtarma

Redis sunucusu başladığında, dump.rdb RDB dosyası Redis kök dizininde varsa, Redis kalıcı verileri geri yüklemek için RDB dosyasını otomatik olarak yükler.

Kök dizinde dump.rdb dosyası yoksa lütfen dump.rdb dosyasını Redis'in kök dizinine taşıyın.

Elbette Redis başladığında, RDB dosyasının yüklenip yüklenmediğini gösterecek olan günlük bilgisi vardır.

Redis sunucusu, yükleme tamamlanana kadar RDB dosyasını yüklerken engeller.

Artık RDB kalıcılığının iki yola ayrıldığını biliyoruz: manuel tetikleme ve otomatik tetikleme:

  1. Avantajı, depolama dosyasının küçük olması ve Redis başlatıldığında veri kurtarma işleminin daha hızlı olmasıdır.
  2. Dezavantajı, veri kaybı riski olmasıdır.

RDB dosyalarının kurtarılması da çok basittir.RDB dosyalarını Redis'in kök dizinine koymanız yeterlidir, Redis başladığında verileri otomatik olarak yükleyecek ve geri yükleyecektir.

RDB'nin artıları ve eksileri

1) RDB avantajları

RDB'nin içeriği, daha az bellek kaplayan, daha kompakt olan ve bir yedekleme dosyası olarak daha uygun olan ikili verilerdir;

RDB, olağanüstü durum kurtarma için çok kullanışlıdır, Redis hizmet kurtarma için uzak bir sunucuya daha hızlı aktarılabilen sıkıştırılmış bir dosyadır;

RDB, Redis'in hızını büyük ölçüde artırabilir, çünkü ana Redis işlemi, verileri diskte kalıcı hale getirmek için bir alt işlemi çatallayacaktır.

Redis ana işlemi, disk G/Ç gibi işlemleri gerçekleştirmez;

AOF formatındaki dosyalarla karşılaştırıldığında, RDB dosyaları daha hızlı yeniden başlar.

2) RDB'nin Dezavantajları

RDB yalnızca belirli bir zaman aralığında veri kaydedebildiğinden, Redis hizmeti yanlışlıkla ortada sonlandırılırsa, Redis verileri bir süreliğine kaybolacaktır;

RDB'nin alt girdiyi kullanarak diske kaydetmek için sık çatallar gerektirdiği bir işlem.

Veri kümesi büyükse çatal zaman alıcı olabilir ve veri kümesi büyükse CPU performansı zayıftır ve bu da Redis'in istemcilere birkaç milisaniye, hatta bir saniye hizmet vermemesine neden olabilir.

Elbette, Redis'in yürütme verimliliğini artırmak için kalıcılığı da devre dışı bırakabiliriz.

Veri kaybına karşı hassas değilseniz, istemci bağlandığında bunu yapabilirsiniz. config set save "" Redis için kalıcılığı devre dışı bırakma komutu.

redis.conf, eğer içindesaveBaşlangıçta tüm yapılandırmaları yorumlayın ve kalıcılık da devre dışı bırakılır, ancak bu genellikle yapılmaz.

Umut Chen Weiliang Blogu ( https://www.chenweiliang.com/ ) paylaştı "Redis RDB'nin tam adı nedir? Redis RDB Bellek İçi Veri Kalıcılığı Çalışma Modu", size yardımcı olacaktır.

Bu makalenin bağlantısını paylaşmaya hoş geldiniz:https://www.chenweiliang.com/cwl-26677.html

En son güncellemeleri almak için Chen Weiliang'ın blogunun Telegram kanalına hoş geldiniz!

🔔 Kanalın üst dizinindeki değerli "ChatGPT İçerik Pazarlama Yapay Zeka Aracı Kullanım Kılavuzunu" alan ilk kişi olun! 🌟
📚 Bu rehber çok büyük değer içeriyor, 🌟Bu nadir bir fırsat, kaçırmayın! ⏰⌛💨
İsterseniz paylaşın ve beğenin!
Paylaşımlarınız ve beğenileriniz bizim sürekli motivasyonumuz!

 

发表 评论

E-posta hesabınız yayımlanmayacak. 必填 项 已 用 * 标注

yukarı kaydır