Ποιο είναι το πλήρες όνομα του Redis RDB; Λειτουργία διατήρησης δεδομένων μνήμης RDB Redis

Το πλήρες όνομα του RDB είναιRedis database.

  • Όπως υποδηλώνει το όνομα, το RDB είναι μια βάση δεδομένων Redis που χρησιμοποιείται για την αποθήκευση δεδομένων.
  • Επομένως, μέσω της επιμονής RDB, τα δεδομένα που είναι αποθηκευμένα στη μνήμη Redis εγγράφονται στο αρχείο RDB και αποθηκεύονται στο δίσκο για να επιτευχθεί επιμονή.
  • Το χαρακτηριστικό του Redis είναι ότι μπορεί να διατηρήσει δεδομένα, δηλαδή να γράψει δεδομένα στη μνήμη σε δίσκο για να διασφαλίσει ότι δεν θα χαθούν δεδομένα και μπορεί επίσης να φορτώσει δεδομένα από το δίσκο στη μνήμη.

Ποιο είναι το πλήρες όνομα του Redis RDB; Λειτουργία διατήρησης δεδομένων μνήμης RDB Redis

Οι λειτουργίες του Redis στην αρχή βασίζονται όλες στη μνήμη, επομένως η απόδοση είναι πολύ υψηλή, αλλά μόλις κλείσει το πρόγραμμα, τα δεδομένα χάνονται.

Επομένως, πρέπει να γράφουμε δεδομένα στη μνήμη στο δίσκο σε καθορισμένα χρονικά διαστήματα, το οποίο είναι Snapshot στην ορολογία.

Κατά την επαναφορά, το αρχείο στιγμιότυπου εγγράφεται απευθείας στη μνήμη.

Αυτή είναι επίσης μια από τις κύριες διαφορές μεταξύ του Redis και του Memcached, επειδή το Memcached δεν έχει δυνατότητα επιμονής.

Για τη διατήρηση των δεδομένων μνήμης Redis, η Redis μας παρέχει τις ακόλουθες μεθόδους:

  • Μέθοδος στιγμιότυπου (RDB, Redis DataBase): εγγραφή δεδομένων μνήμης στο δίσκο σε δυαδική μορφή σε μια συγκεκριμένη στιγμή.
  • Προσθήκη μόνο αρχείου (AOF, Προσθήκη μόνο αρχείου), καταγράψτε όλες τις εντολές λειτουργίας και προσθέστε το στο αρχείο σε μορφή κειμένου.
  • Η υβριδική επιμονή, μια νέα μέθοδος μετά το Redis 4.0, η υβριδική εμμονή συνδυάζει τα πλεονεκτήματα του RDB και του AOF.Κατά τη σύνταξη, πρώτα γράψτε τα τρέχοντα δεδομένα στην αρχή του αρχείου με τη μορφή RDB και, στη συνέχεια, αποθηκεύστε τις επόμενες εντολές λειτουργίας στο αρχείο με τη μορφή AOF, το οποίο όχι μόνο μπορεί να εξασφαλίσει την ταχύτητα της επανεκκίνησης Redis, αλλά και να μειώσει ο κίνδυνος απώλειας δεδομένων.

Επειδή κάθε σχήμα επιμονής έχει συγκεκριμένα σενάρια χρήσης.

Λειτουργία διατήρησης δεδομένων μνήμης RDB Redis

  • Το RDB (Redis DataBase) είναι η διαδικασία εγγραφής ενός στιγμιότυπου μνήμης (Snapshot) σε μια συγκεκριμένη στιγμή στο δίσκο σε δυαδική μορφή.
  • Τα στιγμιότυπα μνήμης είναι αυτά που είπαμε παραπάνω.Αναφέρεται στην εγγραφή κατάστασης των δεδομένων στη μνήμη σε μια συγκεκριμένη στιγμή.
  • Αυτό μοιάζει με τη λήψη φωτογραφίας. Όταν τραβάτε μια φωτογραφία ενός φίλου, μια φωτογραφία μπορεί να καταγράψει αμέσως όλες τις εικόνες του φίλου.
  • Υπάρχουν δύο τρόποι για να ενεργοποιήσετε το RDB: ο ένας είναι η χειροκίνητη ενεργοποίηση και ο άλλος η αυτόματη ενεργοποίηση.

Ενεργοποιήστε με μη αυτόματο τρόπο το RDB

Υπάρχουν δύο λειτουργίες για τη μη αυτόματη ενεργοποίηση της επιμονής:savebgsave.

Η κύρια διαφορά μεταξύ τους είναι αν θα αποκλειστεί ή όχι η εκτέλεση του κύριου νήματος του Redis.

1. εντολή αποθήκευσης

Η εκτέλεση της εντολής αποθήκευσης στην πλευρά του πελάτη θα ενεργοποιήσει την παραμονή του 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

  • Η εντολή flushall χρησιμοποιείται για την έκπλυση της βάσης δεδομένων Redis.
  • Πρέπει να χρησιμοποιείται με προσοχή σε περιβάλλον παραγωγής.
  • Όταν το Redis εκτελεί την εντολή flushall, ενεργοποιεί την αυτόματη επιμονή και διαγράφει το αρχείο RDB.

3. Σκανδάλη συγχρονισμού Master-Slave

Στην αναπαραγωγή Redis master-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
  • Στη συνέχεια, διαγράψτε με μη αυτόματο τρόπο το αρχείο cache dump.rdb μέσω SSH.

Το Redis ορίζει τη διαμόρφωση του RDB

Όσον αφορά τη ρύθμιση παραμέτρων του RDB, μπορείτε να χρησιμοποιήσετε τους ακόλουθους δύο τρόπους:

  1. Τροποποιήστε μη αυτόματα το αρχείο διαμόρφωσης Redis
  2. Χρησιμοποιήστε τις ρυθμίσεις της γραμμής εντολών, το set config dir "/usr/data" είναι η εντολή αποθήκευσης για την τροποποίηση του αρχείου RDB

Σημείωση: Η διαμόρφωση στο redis.conf μπορεί να ληφθεί μέσω config get xxx και να τροποποιηθεί μέσω της τιμής xxx set config, και η μέθοδος μη αυτόματης τροποποίησης του αρχείου διαμόρφωσης Redis είναι καθολικά αποτελεσματική, δηλαδή, οι παράμετροι που ορίζονται με την επανεκκίνηση του διακομιστή Redis δεν θα να χαθεί, αλλά να τροποποιηθεί χρησιμοποιώντας την εντολή , θα χαθεί μετά την επανεκκίνηση του Redis.

Ωστόσο, εάν θέλετε να τροποποιήσετε με μη αυτόματο τρόπο το αρχείο διαμόρφωσης Redis για να τεθεί σε ισχύ αμέσως, πρέπει να κάνετε επανεκκίνηση του διακομιστή Redis και η μέθοδος εντολής δεν απαιτεί επανεκκίνηση του διακομιστή Redis.

Ανάκτηση αρχείων RDB

Όταν ξεκινά ο διακομιστής Redis, εάν το αρχείο RDB dump.rdb υπάρχει στον ριζικό κατάλογο Redis, το Redis θα φορτώσει αυτόματα το αρχείο RDB για να επαναφέρει τα μόνιμα δεδομένα.

Εάν δεν υπάρχει αρχείο dump.rdb στον ριζικό κατάλογο, μετακινήστε πρώτα το αρχείο 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 δεν εκτελεί λειτουργίες όπως είσοδος/έξοδος δίσκου.

Σε σύγκριση με τα αρχεία μορφής AOF, τα αρχεία RDB επανεκκινούνται ταχύτερα.

2) Μειονεκτήματα του RDB

Επειδή το RDB μπορεί να αποθηκεύσει δεδομένα μόνο σε ένα συγκεκριμένο χρονικό διάστημα, εάν η υπηρεσία Redis τερματιστεί κατά λάθος στη μέση, τα δεδομένα Redis θα χαθούν για κάποιο χρονικό διάστημα.

Μια διαδικασία στην οποία το RDB απαιτεί συχνές διχάλες για να το διατηρεί στο δίσκο χρησιμοποιώντας υποκαταχώριση.

Εάν το σύνολο δεδομένων είναι μεγάλο, το fork μπορεί να είναι χρονοβόρο και εάν το σύνολο δεδομένων είναι μεγάλο, η απόδοση της CPU είναι κακή, γεγονός που μπορεί να προκαλέσει το Redis να μην μπορεί να εξυπηρετήσει τους πελάτες για μερικά χιλιοστά του δευτερολέπτου ή ακόμα και ένα δευτερόλεπτο.

Φυσικά, μπορούμε επίσης να απενεργοποιήσουμε την επιμονή για να βελτιώσουμε την αποτελεσματικότητα εκτέλεσης του Redis.

Εάν δεν είστε ευαίσθητοι στην απώλεια δεδομένων, μπορείτε να το κάνετε όταν συνδεθεί ο πελάτης config set save "" Εντολή για απενεργοποίηση της επιμονής για το Redis.

σεredis.conf, εάν μέσαsaveΣχολιάστε όλες τις διαμορφώσεις στην αρχή και η επιμονή θα απενεργοποιηθεί επίσης, αλλά αυτό γενικά δεν γίνεται.

Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ ) κοινοποίησε "Ποιο είναι το πλήρες όνομα του Redis RDB; Redis RDB In-Memory Data Persistence Operation Mode", θα σας βοηθήσει.

Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-26677.html

Καλώς ήρθατε στο κανάλι Telegram του ιστολογίου του Chen Weiliang για να λαμβάνετε τις τελευταίες ενημερώσεις!

🔔 Γίνετε ο πρώτος που θα αποκτήσει τον πολύτιμο "Οδηγό χρήσης εργαλείου τεχνητής νοημοσύνης μάρκετινγκ περιεχομένου ChatGPT" στον κορυφαίο κατάλογο του καναλιού! 🌟
📚 Αυτός ο οδηγός περιέχει τεράστια αξία, 🌟Αυτή είναι μια σπάνια ευκαιρία, μην τη χάσετε! ⏰⌛💨
Κοινοποιήστε και κάντε like αν σας αρέσει!
Η κοινή χρήση και τα like σας είναι το συνεχές μας κίνητρο!

 

发表 评论

Η διεύθυνση email σας δεν θα δημοσιευθεί. 必填 项 已 用 * 标注

κύλιση στην κορυφή