τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Για να βοηθήσουμε όλους στο ταξίδι της συνέντευξης, για μαθητές που δεν είναι ακόμα σίγουροι για το Redis, έχουμε συγκεντρώσει 40 συνήθεις ερωτήσεις συνέντευξης Redis, ώστε να μην πανικοβληθείτε κατά τη διάρκεια της συνέντευξης και να προσπαθήσετε να λάβετε την προσφορά!
1. Τι είναι το Redis;
Το Redis είναι εντελώς ανοιχτού κώδικα και δωρεάν, συμμορφώνεται με το πρωτόκολλο BSD και είναι μια βάση δεδομένων κλειδιού-τιμής υψηλής απόδοσης.
Το Redis έχει τα ακόλουθα τρία χαρακτηριστικά σε σύγκριση με άλλα προϊόντα προσωρινής αποθήκευσης κλειδιών-τιμών:
Το Redis υποστηρίζει τη διατήρηση δεδομένων Μπορεί να αποθηκεύσει τα δεδομένα στη μνήμη στο δίσκο και να τα φορτώσει ξανά για χρήση κατά την επανεκκίνηση.
Το Redis όχι μόνο υποστηρίζει απλά δεδομένα τύπου κλειδιού-τιμής, αλλά παρέχει επίσης αποθήκευση δομών δεδομένων όπως λίστα, σύνολο, zset και κατακερματισμός.
Το Redis υποστηρίζει τη δημιουργία αντιγράφων ασφαλείας δεδομένων, δηλαδή τη δημιουργία αντιγράφων ασφαλείας δεδομένων σε λειτουργία master-slave.
Πλεονεκτήματα του Redis:
Εξαιρετικά υψηλή απόδοση: Το Redis μπορεί να διαβάζει με ταχύτητα 110.000 φορές/δευτερόλεπτο και να γράφει με ταχύτητα 81.000 φορές/δευτερόλεπτο.
Πλούσιοι τύποι δεδομένων: Το Redis υποστηρίζει λειτουργίες τύπων δεδομένων συμβολοσειρές, λίστες, κατακερματισμοί, σύνολα και διατεταγμένα σύνολα σε δυαδικές περιπτώσεις.
Atomic: Όλες οι λειτουργίες στο Redis είναι ατομικές, δηλαδή είτε εκτελούνται με επιτυχία είτε δεν εκτελούνται καθόλου. Οι μεμονωμένες λειτουργίες είναι ατομικές. Πολλαπλές λειτουργίες υποστηρίζουν επίσης συναλλαγές, δηλαδή ατομικότητα, που περικλείονται από τις οδηγίες MULTI και EXEC.
Πλούσια χαρακτηριστικά: Το Redis υποστηρίζει επίσης δημοσίευση/εγγραφή, ειδοποιήσεις, λήξη κλειδιού και άλλες δυνατότητες.
Σε τι διαφέρει το Redis από άλλα καταστήματα βασικής αξίας;
Το Redis έχει πιο πολύπλοκες δομές δεδομένων και παρέχει ατομικές λειτουργίες σε αυτές. Αυτή είναι μια εξελικτική διαδρομή διαφορετική από άλλες βάσεις δεδομένων. Οι τύποι δεδομένων του Redis βασίζονται σε βασικές δομές δεδομένων και είναι διαφανείς στους προγραμματιστές, χωρίς να χρειάζονται πρόσθετες αφαιρέσεις.
Το Redis εκτελείται στη μνήμη, αλλά μπορεί να διατηρηθεί στο δίσκο, επομένως υπάρχει αντιστάθμιση μνήμης κατά την εκτέλεση ανάγνωσης και εγγραφής υψηλής ταχύτητας διαφορετικών συνόλων δεδομένων, επειδή η ποσότητα των δεδομένων δεν μπορεί να είναι μεγαλύτερη από τη μνήμη υλικού. Ένα άλλο πλεονέκτημα των βάσεων δεδομένων στη μνήμη είναι ότι σε σύγκριση με τις ίδιες πολύπλοκες δομές δεδομένων στο δίσκο, η λειτουργία στη μνήμη είναι πολύ απλή, επομένως το Redis μπορεί να κάνει πολλά πράγματα με ισχυρή εσωτερική πολυπλοκότητα. Επίσης, όσον αφορά τη μορφή του δίσκου, είναι συμπαγείς και δημιουργούνται προσαρτήματα, καθώς δεν απαιτούν τυχαία πρόσβαση.
2. Ποιοι είναι οι τύποι δεδομένων του Redis;
Το Redis υποστηρίζει πέντε τύπους δεδομένων: string (string), hash (hash), list (list), set (set) και zsetsorted set (ordered set).
Τα πιο συχνά χρησιμοποιούμενα στα έργα μας είναι η συμβολοσειρά και ο κατακερματισμός Εάν είστε ενδιάμεσος και προχωρημένος χρήστης του Redis, πρέπει επίσης να προσθέσετε τις ακόλουθες δομές δεδομένων HyperLogLog, Geo και Pub/Sub.
Αν πείτε ότι έχετε παίξει και με το Redis Module, όπως το BloomFilter, το RedisSearch και το Redis-ML, τα μάτια του συνεντευκτή θα αρχίσουν να λάμπουν.
3. Ποια είναι τα οφέλη από τη χρήση του Redis;
Είναι γρήγορο γιατί τα δεδομένα αποθηκεύονται στη μνήμη, παρόμοια με το HashMap Το πλεονέκτημα του HashMap είναι ότι η χρονική πολυπλοκότητα της αναζήτησης και της λειτουργίας είναι O1.
Υποστηρίζει πλούσιους τύπους δεδομένων, όπως συμβολοσειρά, λίστα, σύνολο, Zset, κατακερματισμός κ.λπ.
Υποστηρίζει συναλλαγές και όλες οι λειτουργίες είναι ατομικές Η λεγόμενη ατομικότητα σημαίνει ότι όλες οι αλλαγές στα δεδομένα είτε εκτελούνται είτε δεν εκτελούνται καθόλου.
Πλούσιες λειτουργίες, μπορούν να χρησιμοποιηθούν για προσωρινή αποθήκευση, ανταλλαγή μηνυμάτων, ρύθμιση χρόνου λήξης με κλειδί, θα διαγραφεί αυτόματα μετά τη λήξη
4. Ποια είναι τα πλεονεκτήματα του Redis σε σύγκριση με το Memcached;
Όλες οι τιμές στο Memcached είναι απλές συμβολοσειρές και το Redis, ως αντικατάστασή του, υποστηρίζει πλουσιότερες κατηγορίες δεδομένων.
Το Redis είναι πολύ πιο γρήγορο από το Memcached
Το Redis μπορεί να διατηρήσει τα δεδομένα του
5. Ποιες είναι οι διαφορές μεταξύ Memcache και Redis;
Η μέθοδος αποθήκευσης Memecache αποθηκεύει όλα τα δεδομένα στη μνήμη Θα κλείσει μετά από διακοπή ρεύματος Τα δεδομένα δεν μπορούν να υπερβούν το μέγεθος της μνήμης. Το Redis αποθηκεύεται εν μέρει στον σκληρό δίσκο, γεγονός που διασφαλίζει την ανθεκτικότητα των δεδομένων.
Τύποι υποστήριξης δεδομένων Η υποστήριξη του Memcache για τύπους δεδομένων είναι σχετικά απλή. Το Redis έχει πολύπλοκους τύπους δεδομένων.
Τα υποκείμενα μοντέλα που χρησιμοποιούνται είναι διαφορετικά ως προς τις υποκείμενες μεθόδους υλοποίησης και τα πρωτόκολλα εφαρμογής για επικοινωνία με πελάτες. Η Redis δημιουργεί απευθείας τον δικό της μηχανισμό εικονικής πραγματικότητας, γιατί αν το γενικό σύστημα καλεί λειτουργίες συστήματος, θα σπαταλήσει ένα συγκεκριμένο χρονικό διάστημα για να μετακινηθεί και να ζητήσει.
6. Είναι το Redis μονής διεργασίας και μονού σπειρώματος;
Το Redis είναι μια ενιαία διεργασία και ένα νήμα Το Redis χρησιμοποιεί τεχνολογία ουράς για να μετατρέψει την ταυτόχρονη πρόσβαση σε σειριακή πρόσβαση, εξαλείφοντας την επιβάρυνση του παραδοσιακού σειριακού ελέγχου της βάσης δεδομένων.
7. Ποια είναι η μέγιστη χωρητικότητα ενός έξυπνου χώρου αποθήκευσης τύπου string;
512 εκατ.
8. Ποιος είναι ο μηχανισμός επιμονής του Redis; Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα του καθενός;
Το Redis παρέχει δύο μηχανισμούς επιμονής, μηχανισμούς RDB και AOF:
Μέθοδος επιμονής RDB (Redis DataBase): αναφέρεται στην εγγραφή όλων των ζευγών κλειδιών-τιμών της βάσης δεδομένων Redis σε ημιμόνιμο τρόπο χρησιμοποιώντας ένα στιγμιότυπο συνόλου δεδομένων και την εγγραφή των δεδομένων σε ένα προσωρινό αρχείο σε μια συγκεκριμένη χρονική στιγμή έχει ολοκληρωθεί, χρησιμοποιήστε αυτό Το προσωρινό αρχείο αντικαθιστά το τελευταίο διατηρημένο αρχείο για την επίτευξη ανάκτησης δεδομένων.
πλεονέκτημα:
Υπάρχει μόνο ένα αρχείο dump.rdb, το οποίο είναι βολικό για επιμονή.
Η ανοχή καταστροφών είναι καλή, ένα αρχείο μπορεί να αποθηκευτεί σε έναν ασφαλή δίσκο.
Για να μεγιστοποιήσετε την απόδοση, διαχωρίστε τη θυγατρική διαδικασία για να ολοκληρώσετε τη λειτουργία εγγραφής και να επιτρέψετε στην κύρια διαδικασία να συνεχίσει να επεξεργάζεται τις εντολές, ώστε το IO να μεγιστοποιείται. Χρησιμοποιήστε μια ξεχωριστή υποδιεργασία για επιμονή και η κύρια διεργασία δεν θα εκτελέσει καμία λειτουργία IO, διασφαλίζοντας την υψηλή απόδοση του Redis.
Όταν το σύνολο δεδομένων είναι μεγάλο, η απόδοση εκκίνησης είναι υψηλότερη από το AOF.
Μειονεκτήματα: χαμηλή ασφάλεια δεδομένων. Το RDB διατηρείται κατά διαστήματα Εάν το Redis αποτύχει κατά τη διάρκεια της παραμονής, θα συμβεί απώλεια δεδομένων.Επομένως, αυτή η μέθοδος είναι πιο κατάλληλη όταν οι απαιτήσεις δεδομένων δεν είναι αυστηρές.
Μέθοδος επιμονής AOF (Append-only file): σημαίνει ότι όλες οι εγγραφές της γραμμής εντολών αποθηκεύονται και αποθηκεύονται πλήρως επίμονα ως αρχεία aof στη μορφή του πρωτοκόλλου αιτήματος εντολής Redis.
πλεονέκτημα:
Για την ασφάλεια των δεδομένων, η επιμονή AOF μπορεί να ρυθμιστεί με το χαρακτηριστικό appendfsync, εάν υπάρχει πάντα, κάθε λειτουργία εντολής θα καταγράφεται στο αρχείο AOF.
Γράφοντας αρχεία σε λειτουργία προσάρτησης, ακόμα κι αν ο διακομιστής πέσει στη μέση, το πρόβλημα συνοχής δεδομένων μπορεί να λυθεί μέσω του εργαλείου redis-check-aof.
Ο τρόπος επανεγγραφής του μηχανισμού AOF. Πριν ξαναγραφτεί το αρχείο AOF (οι εντολές θα συγχωνευθούν και θα ξαναγραφτούν όταν το αρχείο είναι πολύ μεγάλο), μπορείτε να διαγράψετε ορισμένες από τις εντολές (όπως το flushall που χρησιμοποιήθηκε κατά λάθος).
έλλειψη:
Τα αρχεία AOF είναι μεγαλύτερα από τα αρχεία RDB και η επαναφορά τους είναι πιο αργή.
Όταν το σύνολο δεδομένων είναι μεγάλο, η απόδοση εκκίνησης είναι χαμηλότερη από την RDB.
9. Redis κοινά προβλήματα απόδοσης και λύσεις
Το Master είναι καλύτερο να μην γράψετε στιγμιότυπα μνήμης, η εντολή αποθήκευσης προγραμματίζει τη λειτουργία rdbSave, η οποία θα μπλοκάρει την εργασία του κύριου νήματος Όταν το στιγμιότυπο είναι σχετικά μεγάλο, ο αντίκτυπος στην απόδοση θα είναι πολύ μεγάλος η υπηρεσία θα διακοπεί κατά διαστήματα.
Εάν τα δεδομένα είναι σημαντικά, ένα Slave ενεργοποιεί τη δημιουργία αντιγράφων ασφαλείας δεδομένων AOF και η πολιτική έχει ρυθμιστεί να συγχρονίζει ένα δεδομένα ανά δευτερόλεπτο.
Για την ταχύτητα αναπαραγωγής master-slave και τη σταθερότητα της σύνδεσης, είναι καλύτερο το Master και το Slave να βρίσκονται στο ίδιο LAN.
Προσπαθήστε να αποφύγετε την προσθήκη slaves σε μια πιεσμένη κύρια βάση δεδομένων.
Μην χρησιμοποιείτε δομή γραφήματος για αναπαραγωγή master-slave Είναι πιο σταθερό να χρησιμοποιείτε μια μονόδρομη συνδεδεμένη δομή λίστας, δηλαδή: Master