Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 15771|Απάντηση: 0

[Ρέντις] 5 πράγματα που πρέπει να γνωρίζετε πριν χρησιμοποιήσετε το Redis

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 29/12/2015 12:22:28 μ.μ. | | |
Η ανάπτυξη εφαρμογών με το Redis είναι μια ευχάριστη διαδικασία, αλλά όπως κάθε τεχνολογία, υπάρχουν μερικά πράγματα που πρέπει να έχετε κατά νου όταν σχεδιάζετε εφαρμογές που βασίζονται στο Redis. Μπορεί να ήσασταν εξοικειωμένοι με ολόκληρη τη ρουτίνα της ανάπτυξης σχεσιακών βάσεων δεδομένων στο παρελθόν και η ανάπτυξη εφαρμογών που βασίζεται στο Redis έχει πολλές ομοιότητες, αλλά πρέπει να έχετε κατά νου τα ακόλουθα δύο πράγματα - Το Redis είναι μια βάση δεδομένων στη μνήμη και είναι μονής κλωστής. Επομένως, όταν χρησιμοποιείτε το Redis, πρέπει να δώσετε προσοχή στα ακόλουθα σημεία:
1. Ελέγξτε όλα τα κλειδιά που είναι αποθηκευμένα στο Redis
Η κύρια λειτουργία μιας βάσης δεδομένων είναι η αποθήκευση δεδομένων, αλλά είναι φυσιολογικό για τους προγραμματιστές να αγνοούν ορισμένα δεδομένα που είναι αποθηκευμένα στη βάση δεδομένων λόγω αλλαγών στις απαιτήσεις εφαρμογών ή στις μεθόδους χρήσης δεδομένων, και το ίδιο ισχύει και στο Redis. Μπορεί να παραβλέψετε ορισμένα κλειδιά που λήγουν ή μπορεί να ξεχάσετε τα δεδομένα επειδή μια λειτουργική μονάδα της εφαρμογής σας έχει καταργηθεί.
Και στις δύο περιπτώσεις, το Redis αποθηκεύει ορισμένα δεδομένα που δεν χρησιμοποιούνται πλέον, καταλαμβάνοντας λίγο χώρο χωρίς λόγο. Το ασθενώς δομημένο μοτίβο δεδομένων του Redis καθιστά δύσκολο να καταλάβουμε τι αποθηκεύεται κεντρικά, εκτός εάν χρησιμοποιείτε μια πολύ ώριμη ονοματολογία για τα κλειδιά. Η χρήση της σωστής μεθόδου ονομασίας θα απλοποιήσει τη διαχείριση της βάσης δεδομένων σας και όταν δημιουργείτε ένα χώρο ονομάτων για κλειδιά μέσω της εφαρμογής ή της υπηρεσίας σας (συνήθως χρησιμοποιώντας άνω και κάτω τελεία για τη διαίρεση των ονομάτων κλειδιών), μπορείτε εύκολα να αναγνωρίσετε δεδομένα κατά τη μετεγκατάσταση, τη μετατροπή ή τη διαγραφή τους.
Μια άλλη συνηθισμένη περίπτωση χρήσης του Redis είναι ως δεύτερος χώρος αποθήκευσης δεδομένων για καυτά στοιχεία δεδομένων, όπου τα περισσότερα δεδομένα αποθηκεύονται σε άλλες βάσεις δεδομένων, όπως η PostgreSQL ή η MongoDB. Σε αυτές τις περιπτώσεις χρήσης, οι προγραμματιστές συχνά ξεχνούν να διαγράψουν τα αντίστοιχα δεδομένα στο Redis όταν τα δεδομένα αφαιρούνται από τον κύριο χώρο αποθήκευσης. Σε αυτήν την περίπτωση, συνήθως απαιτείται διαδοχική διαγραφή, οπότε μπορεί να επιτευχθεί με την αποθήκευση όλων των αναγνωριστικών για ένα συγκεκριμένο στοιχείο δεδομένων στη διαμόρφωση Redis, έτσι ώστε να διασφαλιστεί ότι μετά τη διαγραφή των δεδομένων στην κύρια βάση δεδομένων, ένας καθαριστής καλείται να διαγράψει όλα τα σχετικά αντίγραφα και πληροφορίες.
2. Ελέγξτε το μήκος όλων των ονομάτων κλειδιών
Όπως είπαμε παραπάνω, χρησιμοποιήσαμε κατάλληλες συμβάσεις ονομασίας και προσθέσαμε προθέματα για να προσδιορίσουμε πού πηγαίνουν τα δεδομένα, οπότε αυτό φαίνεται να έρχεται σε αντίθεση με αυτό. Ωστόσο, μην ξεχνάτε ότι το Redis είναι μια βάση δεδομένων στη μνήμη και όσο πιο κοντά είναι τα κλειδιά, τόσο λιγότερο χώρο χρειάζεστε. Φυσικά, όταν υπάρχουν εκατομμύρια ή δισεκατομμύρια κλειδιά σε μια βάση δεδομένων, το μήκος του ονόματος του κλειδιού θα έχει μεγάλο αντίκτυπο.
Για παράδειγμα, σε ένα διακομιστή Redis 32 bit, εάν αποθηκεύσετε ένα εκατομμύριο κλειδιά με μήκος 32 χαρακτήρων, θα καταναλώσει περίπου 96 MB χώρου όταν χρησιμοποιείτε ένα όνομα κλειδιού 6 χαρακτήρων, αλλά εάν χρησιμοποιήσετε ένα όνομα κλειδιού 12 χαρακτήρων, η κατανάλωση χώρου θα αυξηθεί σε περίπου 111 MB. Με περισσότερα κλειδιά, τα επιπλέον γενικά έξοδα 15% θα έχουν σημαντικό αντίκτυπο.
3. Χρησιμοποιήστε τη σωστή δομή δεδομένων
Είτε πρόκειται για χρήση μνήμης είτε για απόδοση, μερικές φορές οι δομές δεδομένων μπορεί να έχουν μεγάλο αντίκτυπο, ακολουθούν ορισμένες βέλτιστες πρακτικές στις οποίες μπορείτε να ανατρέξετε:
Αντί να αποθηκεύετε δεδομένα ως χιλιάδες (ή εκατομμύρια) ξεχωριστές συμβολοσειρές, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε κατακερματισμένες δομές δεδομένων για την ομαδοποίηση σχετικών δεδομένων. Οι πίνακες κατακερματισμού είναι πολύ αποτελεσματικοί και μπορούν να μειώσουν τη χρήση της μνήμης σας. Ταυτόχρονα, ο κατακερματισμός είναι επίσης πιο ωφέλιμος για την αφαίρεση λεπτομερειών και την αναγνωσιμότητα του κώδικα.
Όταν χρειάζεται, χρησιμοποιήστε λίστα αντί για σύνολο. Εάν δεν χρειάζεται να χρησιμοποιήσετε τη δυνατότητα ρύθμισης, η Λίστα μπορεί να παρέχει μεγαλύτερες ταχύτητες από αυτές που έχουν οριστεί ενώ χρησιμοποιείτε λιγότερη μνήμη.
Τα ταξινομημένα σύνολα είναι οι πιο ακριβές δομές δεδομένων, τόσο όσον αφορά την κατανάλωση μνήμης όσο και την πολυπλοκότητα των βασικών λειτουργιών. Εάν χρειάζεστε απλώς έναν τρόπο να υποβάλετε ερωτήματα σε εγγραφές και δεν σας ενδιαφέρει η ταξινόμηση τέτοιων ιδιοτήτων, τότε συνιστάται ιδιαίτερα η χρήση πινάκων κατακερματισμού.
Ένα χαρακτηριστικό που συχνά παραβλέπεται στο Redis είναι τα bitmaps ή τα bitsets (μετά την έκδοση 2.2). Τα σύνολα bit σάς επιτρέπουν να εκτελείτε πολλαπλές λειτουργίες σε επίπεδο bit σε τιμές Redis, όπως κάποια ελαφριά ανάλυση.
4. Μην χρησιμοποιείτε το κλειδί όταν χρησιμοποιείτε το SCAN
Από το Redis v2.8, η εντολή SCAN είναι ήδη διαθέσιμη, η οποία επιτρέπει την ανάκτηση κλειδιών από το keyspace χρησιμοποιώντας τον κέρσορα. Σε σύγκριση με την εντολή KEYS, αν και το SCAN δεν μπορεί να επιστρέψει όλα τα αποτελέσματα που ταιριάζουν ταυτόχρονα, αποφεύγει τον υψηλό κίνδυνο αποκλεισμού του συστήματος, έτσι ώστε ορισμένες λειτουργίες να μπορούν να εκτελεστούν στον κύριο κόμβο.
Είναι σημαντικό να σημειωθεί ότι η εντολή SCAN είναι ένας επαναλήπτης που βασίζεται σε δρομέα. Κάθε φορά που καλείται η εντολή SCAN, ένας νέος δρομέας θα επιστρέφεται στον χρήστη και ο χρήστης θα πρέπει να χρησιμοποιήσει αυτόν τον νέο κέρσορα ως παράμετρο δρομέα της εντολής SCAN στην επόμενη επανάληψη, ώστε να συνεχίσει την προηγούμενη διαδικασία επανάληψης. Ταυτόχρονα, με το SCAN, οι χρήστες μπορούν επίσης να προσαρμόσουν τις εντολές χρησιμοποιώντας τη λειτουργία ονόματος κλειδιού και τις επιλογές μέτρησης.
Οι εντολές που σχετίζονται με το SCAN περιλαμβάνουν επίσης εντολές SSCAN, εντολές HSCAN και εντολές ZSCAN, οι οποίες χρησιμοποιούνται για συλλογές, κλειδιά κατακερματισμού και συνέχειες, αντίστοιχα.
5. Χρησιμοποιήστε σενάρια Lua από την πλευρά του διακομιστή
Κατά τη διαδικασία χρήσης του Redis, η υποστήριξη των σεναρίων Lua παρέχει αναμφίβολα στους προγραμματιστές ένα πολύ φιλικό περιβάλλον ανάπτυξης, απελευθερώνοντας έτσι σε μεγάλο βαθμό τη δημιουργικότητα των χρηστών. Όταν χρησιμοποιούνται σωστά, τα σενάρια Lua μπορούν να επιφέρουν σημαντικές βελτιώσεις στην απόδοση και την κατανάλωση πόρων. Αντί να μεταβιβάζετε δεδομένα στην CPU, τα σενάρια σάς επιτρέπουν να εκτελείτε λογική πιο κοντά στα δεδομένα, μειώνοντας τον λανθάνοντα χρόνο δικτύου και την περιττή μεταφορά δεδομένων.
Στο Redis, μια πολύ κλασική περίπτωση χρήσης για το Lua είναι το φιλτράρισμα δεδομένων ή η συγκέντρωση δεδομένων σε μια εφαρμογή. Ενσωματώνοντας τη ροή εργασιών επεξεργασίας σε ένα σενάριο, μπορείτε απλά να το καλέσετε για να λάβετε μια μικρότερη απάντηση χρησιμοποιώντας λίγους πόρους σε λιγότερο χρόνο.
Επαγγελματική συμβουλή:Το Lua είναι υπέροχο, αλλά έχει και κάποια προβλήματα, όπως δυσκολία αναφοράς και χειρισμού σφαλμάτων. Μια έξυπνη προσέγγιση είναι να χρησιμοποιήσετε τη λειτουργία Pub/Sub του Redis και να αφήσετε το σενάριο να προωθήσει μηνύματα καταγραφής μέσω ενός αποκλειστικού καναλιού. Στη συνέχεια, δημιουργήστε μια διαδικασία συνδρομητή και επεξεργαστείτε την ανάλογα.





Προηγούμενος:Ρέντις . Στοιχείο ανοιχτού κώδικα .NET Beetle.Redis
Επόμενος:Install-Package: Το πακέτο Microsoft.Bcl 1.1.10 απαιτεί έκδοση πελάτη NuGet 2.8.1 ή νεότερη...
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com