Εξοικειωθείτε με το Redis και μάθετε πώς να βελτιστοποιείτε τις εφαρμογές Node με αυτό το ισχυρό κατάστημα δεδομένων.

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

Το Redis είναι μία από τις πολλές τεχνολογίες που μπορούν να βοηθήσουν στη βελτίωση της απόδοσης των εφαρμογών Ιστού σας. Προσφέρει αξιοσημείωτα χαρακτηριστικά που μπορείτε να χρησιμοποιήσετε για να βελτιώσετε την απόδοση οποιασδήποτε εφαρμογής Ιστού.

Λοιπόν, τι ακριβώς είναι το Redis και πώς μπορείτε να αρχίσετε να το χρησιμοποιείτε με τις εφαρμογές web Node.js;

Τι είναι το Redis και πότε πρέπει να το χρησιμοποιήσετε;

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

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

instagram viewer

Πότε πρέπει να χρησιμοποιείτε το Redis;

Το Redis είναι κατάλληλο για πολλές εργασίες, αλλά θα πρέπει να προσέχετε να το χρησιμοποιείτε μόνο όταν είναι λογικό να το κάνετε.

Θα πρέπει να σκεφτείτε να χρησιμοποιήσετε το Redis σε αυτά τα σενάρια:

  • Προσωρινή αποθήκευση: Το Redis είναι ο πιο δημοφιλής τρόπος υλοποίησης μιας κρυφής μνήμης που βοηθά στην αποφυγή φόρτωσης στις βάσεις δεδομένων και στη βελτίωση της συνολικής απόδοσης.
  • Διαχείριση συνεδρίας: Η αποθήκευση και η διαχείριση περιόδων σύνδεσης χρήστη για έλεγχο ταυτότητας και διαχείριση κατάστασης είναι πολύ εύκολη με το Redis.
  • Προσωρινή αποθήκευση δεδομένων: Το Redis σάς επιτρέπει να αποθηκεύετε δεδομένα και να τα διαγράφετε αυτόματα μετά από μια συγκεκριμένη χρονική περίοδο. Αυτό το καθιστά ένα καλό εργαλείο για την αποθήκευση προσωρινών δεδομένων όπως π.χ JSON web token, ουρές εργασίας, και τα λοιπά.

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

Πώς να χρησιμοποιήσετε το Redis με το Node.js

Το Node.js είναι μια δημοφιλής τεχνολογία για τη δημιουργία αποτελεσματικών και επεκτάσιμων εφαρμογών από την πλευρά του διακομιστή. Μπορείτε να το χρησιμοποιήσετε σε συνδυασμό με τεχνολογίες υποστήριξης όπως το Redis για να αποκτήσετε υψηλή απόδοση και επεκτασιμότητα.

Το Redis υποστηρίζει πολλές γλώσσες. Μπορείτε να το χρησιμοποιήσετε για αποθήκευση δεδομένων σε PHP και υπάρχουν εξαιρετικοί πελάτες Redis για το Golang. Οι δύο πιο δημοφιλείς πελάτες Redis για το Node.js είναι κόμβος-redis και ιορίδης.

Και τα δύο πακέτα είναι διαθέσιμα μέσω npm και είναι εύκολο στη χρήση. Η βασική διαφορά είναι ότι κόμβος-redis είναι ο επίσημος πελάτης, ενώ η κοινότητα συνιστά ιορίδης.

Σύνδεση στο Redis από το Node.js

Για να ξεκινήσετε, πρέπει να έχετε εγκατεστημένο το Redis στον υπολογιστή σας και να έχετε ρυθμίσει ένα περιβάλλον ανάπτυξης Node.js. Ρίξτε μια ματιά στον οδηγό εγκατάστασης Redis.io για να εγκαταστήσετε το Redis σε Linux, macOS και Windows.

Πρέπει να εγκαταστήσετε το προτιμώμενο SDK πελάτη Redis στο έργο σας για να μπορέσετε να συνδεθείτε στο Redis. Ανάλογα με την προτίμησή σας (θα χρησιμοποιήσουμε κόμβος-redis), εκτελέστε μία από τις παρακάτω εντολές για να εγκαταστήσετε τον πελάτη Redis:

npm εγκατάσταση redis --save
npm εγκατάσταση ioredis --save

Η πρώτη εντολή εγκαθίσταται κόμβος-redis, ενώ το δεύτερο εγκαθίσταται ιορίδης.

Για να ρυθμίσετε τις παραμέτρους που έχετε εγκαταστήσει πρόσφατα, πρέπει να βεβαιωθείτε ότι το Redis εκτελείται. Μπορείτε να το κάνετε αυτό απλά ξεκινώντας redis-cli στο τερματικό σας:

ο ping η εντολή κάνει ping στον διακομιστή για να επιβεβαιώσει ότι εκτελείται και α PONG απόκριση στο CLI σημαίνει ότι ο διακομιστής λειτουργεί καλά. Τώρα δημιουργήστε ένα redis.js αρχείο στο έργο Node και γράψτε τον ακόλουθο κώδικα σε αυτό για να ρυθμίσετε τις παραμέτρους του Redis:

συνθ redis = απαιτώ("redis")

// αρχικοποίηση χρησιμοποιώντας την προεπιλεγμένη διαμόρφωση
συνθ RedisClient = redis.createClient()

συνθ connectRedis = ασυγχρονισμός () => {
// σύνδεση σε redis
αναμένω RedisClient.connect()

// σφάλμα χειρισμού
RedisClient.on('λάθος', (λάθος) => {
κονσόλα.λάθος(`Παρουσιάστηκε σφάλμα με το Redis: ${err}`)
})

κονσόλα.κούτσουρο("Το Redis συνδέθηκε με επιτυχία...")
}

Ο παραπάνω κώδικας προετοιμάζει έναν νέο πελάτη Redis στην εφαρμογή. ο createClient Η λειτουργία του πακέτου redis σας επιτρέπει να δημιουργήσετε έναν πελάτη χρησιμοποιώντας τις καθορισμένες παραμέτρους σας.

Μπορείτε να καθορίσετε τον κεντρικό υπολογιστή, τη θύρα, το όνομα χρήστη, τον κωδικό πρόσβασης ή τη συμβολοσειρά σύνδεσης ή να χρησιμοποιήσετε τις προεπιλεγμένες τιμές. Για παράδειγμα, κόμβος-redis θα ξεκινήσει να τρέχει σε localhost, σε port 6379, από προεπιλογή.

Ακολουθούν μερικοί τρόποι με τους οποίους μπορείτε να χρησιμοποιήσετε το createClient λειτουργία:

// χρησιμοποιώντας συμβολοσειρά σύνδεσης
συνθ RedisClient = redis.createClient("rediss://127.0.0.1:6379")

// χρησιμοποιώντας αντικείμενο παραμέτρου
συνθ RedisClient = redis.createClient({
πρίζα: {
πλήθος: "127.0.0.1",
Λιμάνι: "6379"
},
όνομα χρήστη: "το όνομα χρήστη σας redis",
Κωδικός πρόσβασης: "ο κωδικός σας"
})

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

Εκτέλεση βασικών λειτουργιών Redis στο Node.js

Ο παρακάτω κώδικας συνδέεται με το Redis χρησιμοποιώντας το connectRedis λειτουργία παραπάνω και δείχνει ορισμένες βασικές λειτουργίες που μπορείτε να εκτελέσετε στο Redis από τις εφαρμογές σας Node.

συνθ testRedis = ασυγχρονισμός () => {
αναμένω connectRedis()

// Ορισμός και ανάκτηση μιας τιμής
αναμένω RedisClient.set("όνομα", "Timmy")
συνθ getCommand = αναμένω RedisClient.get("όνομα")
κονσόλα.log (getCommand)

// Διαγράψτε τις τιμές αμέσως ή προγραμματίστε τη λήξη τους
// σε μερικά δευτερόλεπτα
αναμένω RedisClient.del("όνομα");
αναμένω RedisClient.setEx("τοποθεσία", 60, "Λάγος")

// Πιέστε το μπροστινό ή το πίσω μέρος μιας λίστας
αναμένω RedisClient.lPush("ημέρες", "Δευτέρα")
αναμένω RedisClient.rPush("ημέρες", "Τρίτη")
αναμένω RedisClient.lPush("ημέρες", "Τετάρτη")
συνθ daysArray = αναμένω RedisClient.lRange("ημέρες", 0, -1)
// εκτυπώνει [ 'Τετάρτη', 'Δευτέρα', 'Τρίτη' ]
κονσόλα.log (daysArray)

// Αφαιρέστε ένα στοιχείο από το πίσω ή το μπροστινό μέρος μιας λίστας
αναμένω RedisClient.rPop("ημέρες")
αναμένω RedisClient.lPop("ημέρες")
συνθ newDaysArray = αναμένω RedisClient.lRange("ημέρες", 0, -1)
// εκτυπώνει [ 'Δευτέρα' ]
κονσόλα.log (newDaysArray)
}

testRedis()

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

Ο παραπάνω κώδικας εμφανίζει μόνο ορισμένες βασικές λειτουργίες που μπορείτε να εκτελέσετε στο Redis από μια εφαρμογή Node.js. Υπάρχουν πολλές ακόμη εντολές και έννοιες που αξίζει να δούμε.

ο Εντολές Redis ενότητα στο README που βρίσκεται στο node-redis’sGitHub Το αποθετήριο είναι ένα καλό μέρος για να βρείτε όλες τις άλλες εντολές και τι κάνουν.

Χρησιμοποιήστε το Redis για να δημιουργήσετε αποτελεσματικές εφαρμογές

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

Θα πρέπει οπωσδήποτε να εξετάσετε το ενδεχόμενο να ενσωματώσετε το Redis στην επόμενη εφαρμογή Node.js για να αυξήσετε την απόδοση της εφαρμογής σας και να προσφέρετε καλύτερη εμπειρία χρήστη.