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

Άποψη: 34045|Απάντηση: 6

[Πηγή] Το .NET χρησιμοποιεί την προσωρινή μνήμη Redis για ειδοποιήσεις λήξης

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2020-8-22 10:34:59 | | | |
Όταν εκτελούμε ορισμένες χρονομετρημένες λειτουργίες, χρειαζόμαστε ανατροφοδότηση για τα αποτελέσματα. Για παράδειγμα, οι παραγγελίες διαγράφονται αυτόματα μετά τη λήξη τους, οι παραγγελίες επαινούνται αυτόματα μετά από μερικές ημέρες, οι απλήρωτες παραγγελίες κλείνουν μετά από 15 λεπτά κ.λπ., οι οποίες μπορούν να ολοκληρωθούν χρησιμοποιώντας ορισμένα χρονομετρημένα πλαίσια εργασιών ή μεθόδους ψηφοφορίας. Αυτό το άρθρο χρησιμοποιεί τον μηχανισμό ειδοποίησης συμβάντων λήξης cache προηγμένων δυνατοτήτων Redis σε συνδυασμό με κώδικα .NET/C# για την ολοκλήρωση των επιχειρηματικών απαιτήσεων.

Εισαγωγή

Σενάρια χρήσης: 1. Στις επιχειρήσεις πληρωμών, οι απλήρωτες παραγγελίες κλείνουν αυτόματα 2. Υπενθυμίσεις λήξης προσωρινής μνήμης

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

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

Συνδρομή Redis

Τροποποιήστε το notify-keyspace-events Ex στο αρχείο διαμόρφωσης redis.conf

Για να εξοικονομήσετε πόρους κυπέλλου, οι ειδοποιήσεις συμβάντων δεν είναι ενεργοποιημένες από προεπιλογή και η προεπιλογή είναι notify-keyspace-events

# Ειδοποίηση χώρου κλειδιού K, <db>με πρόθεμα __keyspace@__
# Ειδοποίηση συμβάντος κλειδιού E, <db>με πρόθεμα __keysevent@__
# g del, expipre, rename και άλλους τύπους γενικών εντολών, ...
# $string εντολή
# l Εντολή λίστας
#s εντολή "Ορισμός"
# h Εντολή κατακερματισμού
# z εντολή διατεταγμένου συνόλου
# x Συμβάν λήξης (δημιουργείται κάθε φορά που λήγει ένα κλειδί)
# e συμβάν έξωσης (δημιουργείται όταν το κλειδί διαγράφεται όταν η μνήμη είναι πλήρης)
# Ένα ψευδώνυμο g$lshzxe, οπότε "AKE" σημαίνει όλα τα γεγονότα


notify-keyspace-events Το "kx" υποδεικνύει ότι θέλετε να παρακολουθείτε για συμβάντα ακύρωσης για ένα κλειδί. Η ρύθμιση της παραμέτρου στη συμβολοσειρά AKE σημαίνει αποστολή όλων των τύπων ειδοποιήσεων.

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

Παράδειγμα κώδικα .NET/C#

Το πακέτο έχει ως εξής:



επικαλούμαι



Ας δοκιμάσουμε να γράψουμε μια κρυφή μνήμη με το redis-cli.





Στην πραγματικότητα, μπορείτε επίσης να εγγραφείτε στις ειδοποιήσεις λήξης της προσωρινής μνήμης εκτελώντας την ακόλουθη εντολή μέσω του redis-cli:




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



Λήψη πηγαίου κώδικα C#:

https://down.itsvse.com/item/17856.html

περίληψη

Το Redis pub/sub είναι ένας αναξιόπιστος μηχανισμός μηνυμάτων, δεν αποθηκεύει πληροφορίες, θα προωθεί μόνο στο διαδίκτυο και σίγουρα δεν υπάρχει μηχανισμός επιβεβαίωσης ack και θα προωθηθεί μόνο το τμήμα συνδρομής, επομένως το Keyspace Notifications είναι επίσης ένα αναξιόπιστο σύστημα ειδοποιήσεων, εάν η επιχείρησή μας χρειάζεται καλή αξιοπιστία, τότε αυτή δεν είναι η καλύτερη επιλογή. Γενικά, προτείνουμε το DLX (Dead-Letter-Exchange) του RabbitMQ για την υλοποίησή του, που είναι η λειτουργία καθυστερημένης ουράς. Απλώς η λύση της Redis είναι πιο εύκολη στην εφαρμογή και λιγότερο δαπανηρή στη λειτουργία. Εξακολουθεί να είναι πολύ βολικό για επιχειρήσεις που δεν απαιτούν υψηλή αξιοπιστία.




Προηγούμενος:Εγκατάσταση .NET Core 3.1 Κινεζική έξυπνη προτροπή
Επόμενος:Το .NET δεν λαμβάνει την πλήρη συγκρότηση συγκροτήματος αναφοράς
Δημοσιεύτηκε στις 2020-8-29 14:33:18 |
Μαθαίνω να μαθαίνω
Δημοσιεύτηκε στις 2021-11-30 13:16:47 |
Μάθε το
Δημοσιεύτηκε στις 2021-11-30 13:21:02 |
Το Redis pub/sub είναι ένας αναξιόπιστος μηχανισμός μηνυμάτων, δεν αποθηκεύει πληροφορίες, θα προωθεί μόνο στο διαδίκτυο και σίγουρα δεν υπάρχει μηχανισμός επιβεβαίωσης ack και θα προωθηθεί μόνο το τμήμα συνδρομής, επομένως το Keyspace Notifications είναι επίσης ένα αναξιόπιστο σύστημα ειδοποιήσεων, εάν η επιχείρησή μας χρειάζεται καλή αξιοπιστία, τότε αυτή δεν είναι η καλύτερη επιλογή. Γενικά, προτείνουμε το DLX (Dead-Letter-Exchange) του RabbitMQ για την υλοποίησή του, που είναι η λειτουργία καθυστερημένης ουράς. Απλώς η λύση της Redis είναι πιο εύκολη στην εφαρμογή και λιγότερο δαπανηρή στη λειτουργία. Εξακολουθεί να είναι πολύ βολικό για επιχειρήσεις που δεν απαιτούν υψηλή αξιοπιστία.
Δημοσιεύτηκε στις 2022-2-14 17:42:43 |
Κοίτα, μάθε
Δημοσιεύτηκε στις 2022-3-2 15:25:00 |
Μάθε το
Δημοσιεύτηκε στις 2022-7-27 16:40:13 |
Μαθαίνω να μαθαίνω
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com