Redis RDB-nin tam adı nədir? Redis RDB yaddaş məlumatlarının davamlılığı iş rejimi

RDB-nin tam adıRedis database.

  • Adından da göründüyü kimi, RDB məlumatları saxlamaq üçün istifadə olunan Redis verilənlər bazasıdır.
  • Buna görə də, RDB davamlılığı vasitəsilə Redis yaddaşında saxlanılan məlumatlar RDB faylına yazılır və davamlılığa nail olmaq üçün diskdə saxlanılır.
  • Redis-in xüsusiyyəti ondan ibarətdir ki, o, verilənləri saxlaya bilir, yəni heç bir məlumatın itirilməməsini təmin etmək üçün yaddaşda olan məlumatları diskə yaza bilir və həmçinin diskdən yaddaşa məlumatları yükləyə bilir.

Redis RDB-nin tam adı nədir? Redis RDB yaddaş məlumatlarının davamlılığı iş rejimi

Başlanğıcda Redis-in əməliyyatları hamısı yaddaşa əsaslanır, buna görə də performans çox yüksəkdir, lakin proqram bağlandıqdan sonra məlumatlar itirilir.

Buna görə də, yaddaşdaxili məlumatları müəyyən aralıqlarla diskə yazmalıyıq, bu jarqonda Snapshot.

Bərpa edərkən snapshot faylı birbaşa yaddaşa yazılır.

Bu həm də Redis və Memcached arasındakı əsas fərqlərdən biridir, çünki Memcached-in davamlılıq qabiliyyəti yoxdur.

Redis yaddaş məlumatlarının davamlılığı üçün Redis bizə aşağıdakı üsulları təqdim edir:

  • Snapshot metodu (RDB, Redis DataBase): yaddaş məlumatlarını müəyyən anda ikili formada diskə yazmaq;
  • Add Only File (AOF, Append Only File), bütün əməliyyat əmrlərini qeyd edin və mətn şəklində fayla əlavə edin;
  • Redis 4.0-dan sonra yeni üsul olan hibrid əzmkarlıq RDB və AOF-un üstünlüklərini özündə birləşdirir.Yazarkən, cari məlumatları əvvəlcə RDB şəklində faylın əvvəlinə yazın və sonra sonrakı əməliyyat əmrlərini AOF şəklində faylda saxlayın ki, bu da Redis-in yenidən başlama sürətini təmin etməklə yanaşı, həm də azalda bilər. məlumat itkisi riski.

Çünki hər bir davamlılıq sxeminin xüsusi istifadə ssenariləri var.

Redis RDB yaddaş məlumatlarının davamlılığı iş rejimi

  • RDB (Redis DataBase) ikili formada diskə müəyyən bir anda yaddaş şəklinin (Snapshot) yazılması prosesidir.
  • Yaddaş anlıq görüntüləri yuxarıda dediyimiz şeylərdir.Bu, müəyyən bir anda yaddaşdakı məlumatların dövlət qeydinə aiddir.
  • Bu şəkil çəkdirməyə bənzəyir.Siz dostunuzun şəklini çəkdiyiniz zaman fotoşəkil dostunuzun bütün şəkillərini dərhal qeyd edə bilər.
  • RDB-ni işə salmağın iki yolu var: biri əl ilə tetikleme, digəri isə avtomatik tetikleme.

RDB-ni əl ilə işə salın

Davamlılığı əl ilə tetiklemek üçün iki əməliyyat var:savebgsave.

Onların arasındakı əsas fərq, Redis əsas ipinin icrasını bloklamaq və ya etməməkdir.

1. saxla əmri

Müştəri tərəfində saxlama əmrinin yerinə yetirilməsi Redis-in davamlılığını tetikleyecek, lakin o, Redis-i bloklama vəziyyətinə gətirəcək.RDB davam edənə qədər digər müştərilər tərəfindən göndərilən əmrlərə cavab verməyəcək, ona görə də ondan ehtiyatla istifadə edilməlidir. istehsal mühiti.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Komandanın yerinə yetirilməsi prosesi şəkildə göstərilmişdir 

2. bgsave əmri

  • bgsave (fonda saxlama) fon qənaətidir.
  • Onun saxlama əmri ilə ən böyük fərqi ondan ibarətdir ki, bgsave davamlılığı yerinə yetirmək üçün uşaq prosesini kəsəcək.
  • Bütün proses yalnız uşaq prosesi çəngəl olduqda baş verir.Sadəcə qısa tıxanma var.
  • Uşaq prosesi yaradıldıqdan sonra Redis-in əsas prosesi digər müştərilərin sorğularına cavab verə bilər.

bütün prosesi bloklamaqlasaveəmri ilə müqayisədəbgsaveƏmr bizim istifadə etməyimiz üçün daha uyğundur.

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

RDB-ni avtomatik işə salın

Manuel tetikleme haqqında danışdıqdan sonra avtomatik tetiklemeye baxaq.Biz konfiqurasiya faylında avtomatik işə salınma şərtlərini konfiqurasiya edə bilərik.

1. mn qənaət edin

  • Saxla mn o deməkdir ki, m saniyə ərzində n düymə dəyişərsə, davamlılıq avtomatik olaraq işə salınır.m və n parametrləri Redis konfiqurasiya faylında tapıla bilər.
  • Məsələn, 60 1-ə qənaət etmək o deməkdir ki, 60 saniyə ərzində, bir açar dəyişdikcə, RDB davamlılığı işə salınacaq.
  • Avtomatik tetikleyici davamlılığın mahiyyəti ondan ibarətdir ki, təyin edilmiş tətik şərtləri yerinə yetirilərsə, Redis avtomatik olaraq bgsave əmrini bir dəfə yerinə yetirəcəkdir.

Qeyd: Çoxsaylı saxlama mn əmrləri təyin edildikdə, hər hansı bir şərt davamlılığı işə salacaq.

Məsələn, aşağıdakı iki saxlama mn əmrini təyin edirik:

save 60 10
save 600 20
  • Redis açarının dəyəri 60 saniyə ərzində 10 dəfə dəyişdikdə, davamlılıq işə düşəcək;
  • Redis açarı 60-lar ərzində dəyişirsə və dəyər 10 dəfədən az dəyişirsə, Redis Redis açarının 600-lər ərzində ən azı 20 dəfə dəyişdirilib-deyişdirilmədiyini müəyyən edəcək və əgər belədirsə, davamlılığı işə salacaq.

2. Flushall

  • Redis verilənlər bazasını təmizləmək üçün flushall əmrindən istifadə olunur.
  • İstehsal mühitində ehtiyatla istifadə edilməlidir.
  • Redis flushall əmrini yerinə yetirdikdə, avtomatik davamlılığı işə salır və RDB fayllarını təmizləyir.

3. Master-slave sinxronizasiya tetikleyicisi

Redis master-slave replikasiyasında, qul qovşağı tam replikasiya əməliyyatını yerinə yetirdikdə, master node RDB faylını qul qovşağına göndərmək üçün bgsave əmrini yerinə yetirəcək.Bu proses avtomatik olaraq Redis davamlılığını işə salır.

Redis cari konfiqurasiya parametrlərini əmrlər vasitəsilə sorğulaya bilər.

Sorğu əmrinin formatı:config get xxx

Məsələn, RDB faylı üçün yaddaş adı parametrini əldə etmək istəyirsinizsə, istifadə edə bilərsiniz config get dbfilename .

İcra effekti aşağıdakı kimidir:

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

Redis serveri RDB faylını yükləyərkən yükləmə tamamlanana qədər bloklanacağından, bu, uzun müddətə səbəb ola bilər və vebsayta daxil olmaq mümkün olmayacaq.

Redis-in dump.rdb RDB keş faylını əl ilə silmək istəyirsinizsə, dump.rdb faylının saxlama yolunu tapmaq üçün aşağıdakı əmrdən istifadə edə bilərsiniz▼

find / -name dump.rdb
  • Sonra dump.rdb keş faylını SSH vasitəsilə əl ilə silin.

Redis RDB konfiqurasiyasını təyin edir

RDB konfiqurasiyasını təyin etmək üçün aşağıdakı iki yoldan istifadə edə bilərsiniz:

  1. Redis konfiqurasiya faylını əl ilə dəyişdirin
  2. Komanda xətti parametrlərindən istifadə edin, konfiqurasiya dəsti dir "/usr/data" RDB faylını dəyişdirmək üçün saxlama əmridir

Qeyd: redis.conf-dakı konfiqurasiya get xxx konfiqurasiyası vasitəsilə əldə edilə bilər və konfiqurasiya dəsti xxx dəyəri vasitəsilə dəyişdirilə bilər və Redis konfiqurasiya faylının əl ilə dəyişdirilməsi üsulu qlobal miqyasda effektivdir, yəni Redis serverini yenidən işə salmaqla təyin edilmiş parametrlər işləməyəcəkdir. itiriləcək, lakin əmri ilə dəyişdiriləcək, Redis yenidən başladıqdan sonra itiriləcək.

Bununla belə, dərhal qüvvəyə minmək üçün Redis konfiqurasiya faylını əl ilə dəyişdirmək istəyirsinizsə, Redis serverini yenidən başlatmalısınız və komanda metodu Redis serverinin yenidən işə salınmasını tələb etmir.

RDB faylının bərpası

Redis serveri işə salındıqda, dump.rdb RDB faylı Redis kök kataloqunda mövcuddursa, Redis davamlı məlumatları bərpa etmək üçün avtomatik olaraq RDB faylını yükləyəcək.

Kök qovluğunda dump.rdb faylı yoxdursa, əvvəlcə dump.rdb faylını Redis-in kök qovluğuna köçürün.

Əlbəttə ki, Redis işə salındıqda, RDB faylının yükləndiyini göstərən log məlumatı var.

Redis serveri RDB faylını yükləyərkən yükləmə tamamlanana qədər bloklayır.

İndi bilirik ki, RDB davamlılığı iki yerə bölünür: əl ilə tetikleme və avtomatik tetikleme:

  1. Onun üstünlüyü ondan ibarətdir ki, saxlama faylı kiçikdir və Redis işə salındıqda məlumatların bərpası daha sürətli olur.
  2. İşin mənfi tərəfi məlumat itkisi riskinin olmasıdır.

RDB fayllarının bərpası da çox sadədir.Sadəcə RDB fayllarını Redis-in kök qovluğuna qoyun və Redis başlayanda məlumatları avtomatik yükləyib bərpa edəcək.

RDB müsbət və mənfi cəhətləri

1) RDB üstünlükləri

RDB məzmunu ikili məlumatdır, daha az yaddaş tutur, daha yığcamdır və ehtiyat fayl kimi daha uyğundur;

RDB fəlakətin bərpası üçün çox faydalıdır, Redis xidmətinin bərpası üçün uzaq serverə daha sürətli ötürülə bilən sıxılmış fayldır;

RDB Redis-in sürətini xeyli yaxşılaşdıra bilər, çünki əsas Redis prosesi məlumatların diskdə saxlanması üçün uşaq prosesini çəngəlləyəcək.

Redis əsas prosesi disk I/O kimi əməliyyatları yerinə yetirmir;

AOF format faylları ilə müqayisədə, RDB faylları daha sürətli yenidən başlayır.

2) RDB-nin çatışmazlıqları

RDB məlumatı yalnız müəyyən vaxt intervalında saxlaya bildiyindən, Redis xidməti təsadüfən ortada dayandırılarsa, Redis məlumatları müəyyən müddət ərzində itiriləcək;

RDB-nin onu alt girişdən istifadə edərək diskdə saxlamaq üçün tez-tez çəngəllər tələb etdiyi proses.

Verilənlər dəsti böyükdürsə, çəngəl çox vaxt apara bilər və məlumat dəsti böyükdürsə, CPU performansı zəifdir və bu, Redisin müştərilərə bir neçə millisaniyə və ya hətta bir saniyə ərzində xidmət göstərə bilməməsinə səbəb ola bilər.

Əlbəttə ki, Redis-in icra səmərəliliyini artırmaq üçün əzmkarlığı da söndürə bilərik.

Əgər məlumat itkisinə qarşı həssas deyilsinizsə, müştəri qoşulduqda bunu edə bilərsiniz config set save "" Redis üçün davamlılığı söndürmək əmri.

redis.conf, varsasaveBaşlanğıcda bütün konfiqurasiyaları şərh edin və əzmkarlıq da əlil olacaq, lakin bu ümumiyyətlə edilmir.

Hope Chen Weiliang Blogu ( https://www.chenweiliang.com/ ) paylaşdı "Redis RDB-nin tam adı nədir? Redis RDB In-Memory Data Persistence Operation Mode, sizə kömək edəcək.

Bu məqalənin linkini paylaşmağa xoş gəlmisiniz:https://www.chenweiliang.com/cwl-26677.html

Ən son yenilikləri əldə etmək üçün Chen Weiliang bloqunun Telegram kanalına xoş gəlmisiniz!

🔔 Kanalın ən yaxşı kataloqunda dəyərli "ChatGPT Məzmun Marketinq AI Aləti İstifadə Bələdçisi"ni ilk əldə edən siz olun! 🌟
📚 Bu təlimatda böyük dəyər var, 🌟Bu nadir fürsətdir, qaçırmayın! ⏰⌛💨
Bəyəndinizsə paylaşın və bəyənin!
Paylaşımlarınız və bəyənmələriniz davamlı motivasiyamızdır!

 

发表 评论

Elektron poçtunuz dərc olunmayacaq. Zəruri sahələrdən istifadə olunur * Etiket

yuxarıya sürüşdürün