რა არის Redis RDB-ის სრული სახელი? Redis RDB მეხსიერების მონაცემთა მდგრადი მუშაობის რეჟიმი

RDB-ის სრული სახელიაRedis database.

  • როგორც სახელი გვთავაზობს, RDB არის Redis მონაცემთა ბაზა, რომელიც გამოიყენება მონაცემების შესანახად.
  • ამიტომ, RDB მდგრადობის საშუალებით, Redis მეხსიერებაში შენახული მონაცემები იწერება RDB ფაილში და ინახება დისკზე მდგრადობის მისაღწევად.
  • Redis-ის თვისება ის არის, რომ მას შეუძლია შენარჩუნდეს მონაცემები, ანუ ჩაწეროს მონაცემები მეხსიერებაში დისკზე, რათა დარწმუნდეს, რომ მონაცემები არ დაიკარგება და ასევე შეუძლია დისკიდან მონაცემების ჩატვირთვა მეხსიერებაში.

რა არის Redis RDB-ის სრული სახელი? Redis RDB მეხსიერების მონაცემთა მდგრადი მუშაობის რეჟიმი

Redis-ის ოპერაციები დასაწყისში ყველა ეფუძნება მეხსიერებას, ამიტომ შესრულება ძალიან მაღალია, მაგრამ პროგრამის დახურვის შემდეგ, მონაცემები იკარგება.

ამიტომ, ჩვენ უნდა ჩავწეროთ მეხსიერების მონაცემები დისკზე განსაზღვრული ინტერვალებით, რაც ჟარგონში არის Snapshot.

აღდგენისას, სნეფშოტის ფაილი იწერება პირდაპირ მეხსიერებაში.

ეს ასევე არის ერთ-ერთი მთავარი განსხვავება Redis-სა და Memcached-ს შორის, რადგან Memcached-ს არ აქვს მდგრადობის შესაძლებლობა.

Redis მეხსიერების მონაცემების მდგრადობისთვის, Redis გვაწვდის შემდეგ მეთოდებს:

  • Snapshot მეთოდი (RDB, Redis DataBase): ჩაწერეთ მეხსიერების მონაცემები დისკზე ბინარული ფორმით გარკვეულ მომენტში;
  • მხოლოდ ფაილის დამატება (AOF, Append Only File), ჩაწერეთ ყველა ოპერაციის ბრძანება და დაამატეთ ფაილს ტექსტური ფორმით;
  • ჰიბრიდული მდგრადობა, ახალი მეთოდი Redis 4.0-ის შემდეგ, ჰიბრიდული მდგრადობა აერთიანებს RDB და AOF-ის უპირატესობებს.წერისას ჯერ ჩაწერეთ მიმდინარე მონაცემები ფაილის დასაწყისში RDB სახით, შემდეგ კი შეინახეთ შემდგომი ოპერაციის ბრძანებები ფაილში AOF-ის სახით, რაც არა მხოლოდ უზრუნველყოფს Redis-ის გადატვირთვის სიჩქარეს, არამედ ამცირებს მონაცემთა დაკარგვის რისკი.

რადგან თითოეულ მდგრად სქემას აქვს გამოყენების კონკრეტული სცენარი.

Redis RDB მეხსიერების მონაცემთა მდგრადი მუშაობის რეჟიმი

  • RDB (Redis DataBase) არის მეხსიერების სნეპშოტის (Snapshot) ჩაწერის პროცესი გარკვეულ მომენტში დისკზე ბინარული ფორმით.
  • მეხსიერების კადრები არის ის, რაც ზემოთ ვთქვით.ეს ეხება მონაცემების სახელმწიფო ჩანაწერს მეხსიერებაში გარკვეულ მომენტში.
  • ეს ფოტოს გადაღების მსგავსია. როდესაც მეგობარს უღებთ ფოტოს, ფოტოს შეუძლია მომენტალურად ჩაიწეროს მეგობრის ყველა სურათი.
  • RDB-ის გააქტიურების ორი გზა არსებობს: ერთი არის ხელით გაშვება და მეორე ავტომატური გაშვება.

ხელით გააქტიურეთ RDB

არსებობს ორი ოპერაცია მდგრადობის ხელით გასააქტიურებლად:savebgsave.

მათ შორის მთავარი განსხვავებაა დაბლოკოს თუ არა Redis-ის მთავარი ძაფის შესრულება.

1. შენახვა ბრძანება

Save ბრძანების შესრულება კლიენტის მხარეს გამოიწვევს Redis-ის მდგრადობას, მაგრამ ის ასევე გახდის Redis-ს დაბლოკვის მდგომარეობაში. ის არ პასუხობს სხვა კლიენტების მიერ გამოგზავნილ ბრძანებებს, სანამ RDB არ შენარჩუნდება, ამიტომ ის სიფრთხილით უნდა იქნას გამოყენებული. წარმოების გარემო.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

ბრძანების შესრულების პროცესი ნაჩვენებია სურათზე 

2. bgsave ბრძანება

  • bgsave (ფონური შენახვა) არის ფონური შენახვა.
  • ყველაზე დიდი განსხვავება მასსა და შენახვის ბრძანებას შორის არის ის, რომ bgsave აწარმოებს ბავშვის პროცესს მდგრადობის შესასრულებლად.
  • მთელი პროცესი ხდება მხოლოდ მაშინ, როდესაც ბავშვის პროცესი ჩანგალია.არის მხოლოდ ხანმოკლე ბლოკირება.
  • ბავშვის პროცესის შექმნის შემდეგ, Redis-ის ძირითად პროცესს შეუძლია უპასუხოს სხვა კლიენტების მოთხოვნებს.

მთელი პროცესის დაბლოკვითsaveბრძანებასთან შედარებითbgsaveბრძანება აშკარად უფრო შესაფერისია ჩვენთვის გამოსაყენებლად.

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

RDB ავტომატური გაშვება

ხელით გაშვებაზე საუბრის შემდეგ, მოდით შევხედოთ ავტომატურ გაშვებას.ჩვენ შეგვიძლია კონფიგურაციის ფაილში ავტომატური გაშვების პირობების კონფიგურაცია.

1. დაზოგე მნ

  • შენახვა mn ნიშნავს, რომ m წამში, თუ n კლავიშები შეიცვლება, მდგრადობა ავტომატურად ამოქმედდება.პარამეტრები m და n შეგიძლიათ იხილოთ Redis-ის კონფიგურაციის ფაილში.
  • მაგალითად, შენახვა 60 1 ნიშნავს, რომ 60 წამში, სანამ ერთი გასაღები შეიცვლება, RDB მდგრადობა ამოქმედდება.
  • მდგრადობის ავტომატური გაშვების არსი არის ის, რომ თუ დაყენებული ტრიგერების პირობები დაკმაყოფილებულია, Redis ავტომატურად შეასრულებს bgsave ბრძანებას ერთხელ.

შენიშვნა: როდესაც დაყენებულია მრავალი შენახვის mn ბრძანება, ნებისმიერი პირობა გამოიწვევს მდგრადობას.

მაგალითად, ჩვენ დავაყენეთ შემდეგი ორი save mn ბრძანება:

save 60 10
save 600 20
  • როდესაც Redis კლავიშის მნიშვნელობა 60-ჯერ შეიცვლება 10 წამის განმავლობაში, მდგრადობა ამოქმედდება;
  • თუ Redis კლავიში შეიცვლება 60 წმ-ში და თუ მნიშვნელობა იცვლება 10-ზე ნაკლები, Redis განსაზღვრავს, შეიცვალა თუ არა Redis კლავიში მინიმუმ 600-ჯერ 20 წამის განმავლობაში და თუ ასეა, გამოიწვევს მუდმივ მუშაობას.

2. ფლუშალი

  • flushall ბრძანება გამოიყენება Redis მონაცემთა ბაზის გასასუფთავებლად.
  • ის სიფრთხილით უნდა იქნას გამოყენებული საწარმოო გარემოში.
  • როდესაც Redis ასრულებს flushall ბრძანებას, ის იწვევს ავტომატურ მუდმივობას და ასუფთავებს RDB ფაილებს.

3. Master-Slave სინქრონიზაციის ტრიგერი

Redis master-slave რეპლიკაციაში, როდესაც slave კვანძი ასრულებს სრულ რეპლიკაციის ოპერაციას, ძირითადი კვანძი შეასრულებს bgsave ბრძანებას RDB ფაილის მონა კვანძში გასაგზავნად. ეს პროცესი ავტომატურად იწვევს Redis მდგრადობას.

Redis-ს შეუძლია მოითხოვოს მიმდინარე კონფიგურაციის პარამეტრები ბრძანებების მეშვეობით.

შეკითხვის ბრძანების ფორმატია:config get xxx

მაგალითად, თუ გსურთ მიიღოთ RDB ფაილის შენახვის სახელის პარამეტრი, შეგიძლიათ გამოიყენოთ config get dbfilename .

შესრულების ეფექტი შემდეგია:

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

ვინაიდან Redis სერვერი დაიბლოკება RDB ფაილის ჩატვირთვისას, სანამ ჩატვირთვა არ დასრულდება, ამან შეიძლება გამოიწვიოს დიდი დრო და ვებსაიტზე წვდომა შეუძლებელი იყოს.

თუ გსურთ ხელით წაშალოთ RDB ქეში ფაილი dump.rdb Redis, შეგიძლიათ გამოიყენოთ შემდეგი ბრძანება dump.rdb ფაილის შენახვის ბილიკის მოსაძებნად ▼

find / -name dump.rdb
  • შემდეგ, ხელით წაშალეთ dump.rdb ქეში ფაილი SSH-ის საშუალებით.

Redis ადგენს RDB-ის კონფიგურაციას

რაც შეეხება RDB-ის კონფიგურაციის დაყენებას, შეგიძლიათ გამოიყენოთ შემდეგი ორი გზა:

  1. ხელით შეცვალეთ Redis-ის კონფიგურაციის ფაილი
  2. გამოიყენეთ ბრძანების ხაზის პარამეტრები, კონფიგურაციის ნაკრები dir "/usr/data" არის შენახვის ბრძანება RDB ფაილის შესაცვლელად

შენიშვნა: redis.conf-ის კონფიგურაციის მიღება შესაძლებელია config get xxx-ის მეშვეობით და შეცვლილია config set xxx მნიშვნელობის მეშვეობით, ხოლო Redis-ის კონფიგურაციის ფაილის ხელით მოდიფიცირების მეთოდი გლობალურად ეფექტურია, ანუ Redis სერვერის გადატვირთვით დაყენებული პარამეტრები არ იქნება. დაიკარგება, მაგრამ შეიცვლება ბრძანების გამოყენებით, ის დაიკარგება Redis-ის გადატვირთვის შემდეგ.

თუმცა, თუ გსურთ ხელით შეცვალოთ Redis კონფიგურაციის ფაილი, რათა დაუყოვნებლივ ამოქმედდეს, თქვენ უნდა გადატვირთოთ Redis სერვერი და ბრძანების მეთოდი არ საჭიროებს Redis სერვერის გადატვირთვას.

RDB ფაილის აღდგენა

როდესაც Redis სერვერი იწყება, თუ RDB ფაილი dump.rdb არსებობს Redis root დირექტორიაში, Redis ავტომატურად ჩატვირთავს RDB ფაილს მუდმივი მონაცემების აღსადგენად.

თუ არ არის dump.rdb ფაილი root დირექტორიაში, გთხოვთ, ჯერ dump.rdb ფაილი გადაიტანოთ Redis-ის ძირეულ დირექტორიაში.

რა თქმა უნდა, არსებობს ჟურნალის ინფორმაცია, როდესაც Redis იწყება, რომელიც აჩვენებს, არის თუ არა ჩატვირთული RDB ფაილი.

Redis სერვერი იბლოკება RDB ფაილის ჩატვირთვისას, სანამ დატვირთვა არ დასრულდება.

ახლა ჩვენ ვიცით, რომ RDB მდგრადობა იყოფა ორ გზად: ხელით გაშვება და ავტომატური გაშვება:

  1. მისი უპირატესობა ის არის, რომ შენახვის ფაილი მცირეა და მონაცემთა აღდგენა უფრო სწრაფია, როდესაც Redis იწყება.
  2. უარყოფითი მხარე ის არის, რომ არსებობს მონაცემთა დაკარგვის რისკი.

RDB ფაილების აღდგენა ასევე ძალიან მარტივია. უბრალოდ ჩადეთ RDB ფაილები Redis-ის ძირეულ დირექტორიაში და Redis ავტომატურად ჩატვირთავს და აღადგენს მონაცემებს, როდესაც ის დაიწყება.

RDB დადებითი და უარყოფითი მხარეები

1) RDB უპირატესობები

RDB-ის შინაარსი არის ორობითი მონაცემები, რომელიც იკავებს ნაკლებ მეხსიერებას, უფრო კომპაქტურია და უფრო შესაფერისია როგორც სარეზერვო ფაილი;

RDB ძალიან სასარგებლოა კატასტროფის აღდგენისთვის, ეს არის შეკუმშული ფაილი, რომელიც შეიძლება უფრო სწრაფად გადავიდეს დისტანციურ სერვერზე Redis სერვისის აღდგენისთვის;

RDB-ს შეუძლია მნიშვნელოვნად გააუმჯობესოს Redis-ის სიჩქარე, რადგან მთავარი Redis პროცესი აიძულებს ბავშვის პროცესს, რათა შენარჩუნდეს მონაცემები დისკზე.

Redis ძირითადი პროცესი არ ასრულებს ოპერაციებს, როგორიცაა დისკის I/O;

AOF ფორმატის ფაილებთან შედარებით, RDB ფაილები უფრო სწრაფად გადაიტვირთება.

2) RDB-ის ნაკლოვანებები

იმის გამო, რომ RDB-ს შეუძლია მონაცემების შენახვა მხოლოდ გარკვეული დროის ინტერვალით, თუ Redis სერვისი შემთხვევით შეწყდება შუაში, Redis მონაცემები დაიკარგება გარკვეული პერიოდის განმავლობაში;

პროცესი, რომლის დროსაც RDB მოითხოვს ხშირ ჩანგლებს, რათა შეინახოს იგი დისკზე subentry-ის გამოყენებით.

თუ მონაცემთა ნაკრები დიდია, ჩანგალი შეიძლება იყოს შრომატევადი, ხოლო თუ მონაცემთა ნაკრები დიდია, CPU-ის შესრულება ცუდია, რამაც შეიძლება გამოიწვიოს Redis-მა ვერ შეძლოს კლიენტების მომსახურება რამდენიმე მილიწამში ან თუნდაც წამში.

რა თქმა უნდა, ჩვენ ასევე შეგვიძლია გამორთოთ გამძლეობა Redis-ის შესრულების ეფექტურობის გასაუმჯობესებლად.

თუ არ ხართ მგრძნობიარე მონაცემთა დაკარგვის მიმართ, ამის გაკეთება შეგიძლიათ კლიენტის დაკავშირებისას config set save "" ბრძანება Redis-ისთვის მდგრადობის გამორთვისთვის.

redis.conf, თუ შიგნითsaveდაწერეთ კომენტარები დასაწყისში ყველა კონფიგურაციაზე და მდგრადობა ასევე გამორთული იქნება, მაგრამ ეს ჩვეულებრივ არ კეთდება.

იმედი ჩენ ვეილიანგის ბლოგი ( https://www.chenweiliang.com/ ) გააზიარა „რა არის Redis RDB-ის სრული სახელი? Redis RDB In-Memory Data Persistence Operation Mode", დაგეხმარებათ.

კეთილი იყოს თქვენი მობრძანება ამ სტატიის ბმულის გასაზიარებლად:https://www.chenweiliang.com/cwl-26677.html

კეთილი იყოს თქვენი მობრძანება Chen Weiliang-ის ბლოგის ტელეგრამის არხზე, რომ მიიღოთ უახლესი განახლებები!

🔔 იყავით პირველი, ვინც მიიღეთ ღირებული "ChatGPT Content Marketing AI Tool Usage Guide" არხის ზედა დირექტორიაში! 🌟
📚 ეს სახელმძღვანელო შეიცავს უზარმაზარ ღირებულებას, 🌟ეს იშვიათი შესაძლებლობაა, არ გამოტოვოთ! ⏰⌛💨
გააზიარეთ და მოიწონეთ თუ მოგეწონათ!
თქვენი გაზიარება და მოწონებები ჩვენი უწყვეტი მოტივაციაა!

 

评论

თქვენი ელ.ფოსტის მისამართი არ გამოქვეყნდება. გამოყენებულია აუცილებელი ველები * ლეიბლი

გადახვევა ზევით