Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 24125|Yanıt: 2

[Redis] RDB ile AOF arasındaki Redis Sürekliliği Farkı

[Bağlantıyı kopyala]
Yayınlandı 4.02.2021 13:47:27 | | | |
Redis Windows 64-bit indirme, resmi indirme adresi
https://www.itsvse.com/thread-2576-1-1.html

Redis'in başlaması için üç yol var
https://www.itsvse.com/thread-4008-1-1.html

Redis'te save ile bgsave arasındaki fark
https://www.itsvse.com/thread-4010-1-1.html

CentOS 7 kurulumu Redis 5.0.3 eğitimi
https://www.itsvse.com/thread-7201-1-1.html


1. Önsöz

Son zamanlarda, Redis projede birden fazla iş süreci arasında veri paylaşımını kolaylaştırmak için bir önbellek olarak kullanılmıştır. Redis verileri bellekte saklandığı için, persistence ayarlanmazsa, redis yeniden başlatıldığında tüm veriler kaybolur, bu yüzden verileri diske kaydetmek için Redis'in süreklilik fonksiyonunu etkinleştirmeniz gerekir ve redis yeniden başlatıldığında diskten veri kurtarılabilir. Redis, sürekliliğin iki yolu sunar: RDB kalıcılığı (prensip Reids'in veritabanı kayıtlarını diskteki RDB kalıcılığına bellekte aktarmaktır) ve diğeri AOF kalıcılığıdır (prensip Reids'in işlem kayıtlarını ek şeklinde bir dosyaya yazmaktır). Peki bu iki süreklilik yöntemi arasındaki fark nedir ve bunu nasıl değiştirebiliriz? İnternette okuduğum çoğu şey bu iki yöntemin nasıl yapılandırılacağını ve kullanılacağını tanıtıyor, ancak ikisi arasındaki fark ve hangi uygulama senaryolarında kullanılacağı hakkında bir giriş yok.


2. İkisi arasındaki fark

RDB kalıcılığı, veri setinin bellekteki anlık görüntüsünü belirli bir zaman aralığı içinde diske yazmayı ifade eder ve gerçek işlem süreci, bir alt süreci çatallamak, önce veri setini geçici bir dosyaya yazmak, yazım başarılı olduktan sonra önceki dosyayı değiştirmek ve ikili sıkıştırma ile depolamaktır.



AOF kalıcılığı, sunucu tarafından işlendiği her yazma ve silme işlemini bir log şeklinde kaydeder ve sorgulama işlemi kaydedilmez, metin olarak kaydedilir ve dosyayı açıp detaylı işlem kaydını görebilirsiniz.



3. İkisinin avantajları ve dezavantajları

RDB'nin avantajları nelerdir?

1). Bu kullanıldıktan sonra, tüm Redis veritabanınız sadece bir dosya içerecek ve bu dosya yedeklemeleri için mükemmeldir. Örneğin, son 24 saati her saat arşivlemek isteyebilirsiniz ve ayrıca son 30 günü de her gün arşivlemek isteyebilirsiniz. Böyle bir yedek stratejiyle, sistemin felaket bir arızası durumunda kolayca toparlanabiliriz.

2). RDB, felaket kurtarma için çok iyi bir seçimdir. Çünkü tek bir dosyayı kolayca sıkıştırıp başka bir depolama ortamına aktarabiliyoruz.

3). Performansı en üst düzeye çıkarın. Redis servis süreci için, persistence başlatıldığında yapması gereken tek şey child süreçleri çatallamaktır; ardından alt süreçler bu persistence görevlerini tamamlar, bu da servis sürecinin IO işlemlerini büyük ölçüde engellemesini engeller.

4). AOF mekanizmasına kıyasla, veri seti büyükse, RDB'nin başlangıç verimliliği daha yüksek olur.

RDB'nin dezavantajları nelerdir?

1). Eğer yüksek veri erişilebilirliğini sağlamak istiyorsanız, yani veri kaybını en büyük ölçüde önlemek istiyorsanız, RDB iyi bir tercih olmayacak. Çünkü sistem planlanan kalıcılıktan önce çökerse, daha önce diske yazılmış veriler kaybolur.

2). RDB, çatal alt süreçleri aracılığıyla veri kalıcılığına yardımcı olduğundan, veri seti büyükse, tüm sunucunun yüzlerce milisaniye veya hatta 1 saniye boyunca hizmetin durmasına neden olabilir.

AOF'nin avantajları nelerdir?

1). Bu mekanizma, veri güvenliğini artırabilir, yani veri kalıcılığı. Redis'te 3 senkronizasyon stratejisi sunulmaktadır: saniye başına senkronizasyon, modifikasyon başına senkronizasyon ve senkronizasyonun çıkarılması. Aslında, saniyede senkronizasyon da asenkron olarak yapılır ve verimliliği de çok yüksektir; fark şu ki, sistem çöktükten sonra değiştirilmiş veriler bu saniye içinde kaybolur. Ve her değişiklik senkronize edildiğinde, bunu senkronizasyon kalıcılığı olarak düşünebiliriz; yani gerçekleşen her veri değişikliği hemen diske kaydedilir. Bu yöntemin en az verimli yöntem olduğu öngörülebilir. Senkronizasyon olmamasına gelince, daha fazla söylemeye gerek yok, bence herkes doğru anlayabilir.

2). Mekanizma, log dosyalarını yazmak için eklenti modunu benimsediğinden, yazı sürecinde bir kesinti olsa bile, log dosyasında zaten var olan içerik yok edilmez. Ancak, bu sefer verinin sadece yarısını yazarsak ve sistem çökerse, endişelenmeyin, Redis'in bir sonraki başlangıcından önce veri tutarlılığı sorununu çözmek için redis-check-aof aracını kullanabiliriz.

3). Eğer log çok büyükse, Redis otomatik olarak yeniden yazma mekanizmasını etkinleştirebilir. Yani, Redis ekleme modunda mod verisini sürekli olarak eski disk dosyasına yazar ve bu süre boyunca hangi modifikasyon komutlarının yürütüldüğünü kaydetmek için yeni bir dosya oluşturur. Bu nedenle, yeniden yazmalar arasında geçiş yaparken veri güvenliği daha iyi garanti edilebilir.

4). AOF, tüm değişiklikleri kaydeden açık ve anlaşılması kolay bir günlük dosyası içerir. Aslında, bu dosya aracılığıyla verilerin yeniden yapılandırılmasını da tamamlayabiliriz.

OV'nin dezavantajları nelerdir?

1). Aynı sayıda veri seti için, OF dosyaları genellikle RDB dosyalarından daha büyüktür. RDB, büyük veri setlerini AOF'den daha hızlı kurtarır.

2). Senkronizasyon stratejisine bağlı olarak, AOF çalışma verimliliği açısından RDB'den daha yavaştır. Kısacası, senkronizasyon politikasının saniye başındaki verimliliği nispeten yüksektir ve senkron devre dışı bırakma politikasının verimliliği RDB kadar verimlidir.

İkisini seçme kriterleri, sistemin daha yüksek önbellek tutarlılığı (AOF) karşılığında performanstan feda etmeye istekli olup olmadığı veya yazım işlemleri sık olduğunda daha yüksek performans karşılığında yedeklemeleri etkinleştirmemeye istekli olup olmadığı ve ardından KaydEt'i manuel çalıştırırken yedekleme (RDB) yapması olabilir. rdb'nin daha nihai tutarlı bir anlamı vardır. Ancak üretim ortamı aslında ikisinin birleşiminden oluşuyor.


4. Yaygın konfigürasyonlar

RDB süreklilik yapılandırması

Redis, veri setinin bir anlık görüntüsünü dump.rdb dosyasına döker. Ayrıca, yapılandırma dosyası üzerinden Redis sunucu döküm anlık görüntülerinin sıklığını da değiştirebiliriz; 6379.conf dosyasını açtıktan sonra kaydetme ararız ve aşağıdaki yapılandırma bilgilerini görebiliyoruz:



AOF kalıcı yapılandırması

Redis profilinde senkronize olmanın üç yolu vardır:



Tam yapılandırma:



Test dizininde yeni bir "appendonly.aof" dosyası oluşturulur, aşağıdaki gibidir:





Önceki:DataTables tablo dışa aktarma Excel, CSV ve baskı uygular
Önümüzdeki:SQL Server, işlem izolasyon seviyesini belirler
 Ev sahibi| Yayınlandı 8.02.2021 11:45:25 |
Redis, varsayılan port numarasını değiştirir ve erişim şifresini ayarlar
https://www.itsvse.com/thread-2577-1-1.html
Yayınlandı 22.09.2021 20:26:16 |
Öğrenmeyi öğren...
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com