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

Άποψη: 3522|Απάντηση: 2

[Πηγή] Μια απλή σύγκριση της κρυφής μνήμης Garnet και του Redis που αναπτύχθηκε με το .NET

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2024-3-28 18:00:42 | | | |
Το Garnet είναι ένας νέος τύπος απομακρυσμένης αποθήκευσης προσωρινής μνήμης που αναπτύχθηκε από τη Microsoft Research και προσφέρει πολλά μοναδικά πλεονεκτήματα:

  • Το Garnet λαμβάνει ως σημείο εκκίνησης το δημοφιλές πρωτόκολλο γραμμής RESP, το οποίο καθιστά δυνατή τη χρήση του Garnet από μη τροποποιημένους πελάτες Redis που είναι διαθέσιμοι στις περισσότερες γλώσσες προγραμματισμού σήμερα, όπως το StackExchange.Redis σε C#.
  • Το Garnet προσφέρει καλύτερη απόδοση και επεκτασιμότητα με πολλές συνδέσεις πελατών και μικρές παρτίδες σε σύγκριση με συγκρίσιμη αποθήκευση κρυφής μνήμης ανοιχτού κώδικα, εξοικονομώντας κόστος για μεγάλες εφαρμογές και υπηρεσίες.
  • Το Garnet επέδειξε εξαιρετικά χαμηλή καθυστέρηση πελάτη (συνήθως λιγότερο από 300 μικροδευτερόλεπτα στο 99.9%) χρησιμοποιώντας VM Commodity Cloud (Azure) με ενεργοποιημένο το επιταχυνόμενο TCP, κάτι που είναι κρίσιμο για σενάρια πραγματικού κόσμου.
  • Το Garnet βασίζεται στην τελευταία τεχνολογία .NET και είναι cross-platform, επεκτάσιμο και μοντέρνο. Έχει σχεδιαστεί για να είναι εύκολο να αναπτυχθεί και να εξελιχθεί χωρίς να θυσιάζεται η απόδοση σε κοινές καταστάσεις. Αξιοποιούμε το πλούσιο οικοσύστημα βιβλιοθηκών του .NET για να επεκτείνουμε το API και να παρέχουμε ανοιχτές ευκαιρίες βελτιστοποίησης. Χάρη στην προσεκτική χρήση του .NET, το Garnet επιτυγχάνει απόδοση αιχμής τόσο σε Linux όσο και σε Windows.


Διεύθυνση ανοιχτού κώδικα:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Ο γρανάτης έχει τα ακόλουθα βασικά πλεονεκτήματα:

  • Η απόδοση του διακομιστή (λειτουργίες ανά δευτερόλεπτο) αυξάνεται κατά αρκετές τάξεις μεγέθους για μικρές παρτίδες και πολλές περιόδους λειτουργίας πελάτη σε σχέση με συγκρίσιμη αποθήκευση cache ανοιχτού κώδικα.
  • Σε μηχανήματα cloud εμπορευμάτων (Azure) με ενεργοποιημένο το επιταχυνόμενο TCP σε Windows και Linux, η καθυστέρηση ανά λειτουργία είναι εξαιρετικά χαμηλή (συνήθως λιγότερο από 300 μικροδευτερόλεπτα στο 99,9%).
  • Καθώς ο αριθμός των πελατών αυξάνεται, επιτυγχάνεται καλύτερη επεκτασιμότητα με ή χωρίς ομαδοποίηση πελατών.
  • Δυνατότητα χρήσης όλων των πόρων CPU/μνήμης ενός υπολογιστή διακομιστή μέσω μιας παρουσίας διακομιστή κοινόχρηστης μνήμης (δεν χρειάζεται συμπλέγματα εντός κόμβων).
  • Υποστήριξη για σύνολα δεδομένων μεγαλύτερα από τη μνήμη που υπερχειλίζουν σε συσκευές αποθήκευσης εσωτερικής εγκατάστασης και cloud.
  • Λειτουργίες βάσης δεδομένων, όπως γρήγορο σημείο ελέγχου και ανάκτηση και δημοσίευση/εγγραφή.
  • Υποστήριξη για κατάτμηση κατακερματισμού πολλαπλών κόμβων (λειτουργία "cluster" Redis), μετεγκατάσταση κατάστασης και αναπαραγωγή.
  • Καλά δοκιμασμένο με μια ολοκληρωμένη σουίτα δοκιμών (χιλιάδες δοκιμές μονάδων έναντι του Γρανάτη και του επιπέδου αποθήκευσης του Τσαβορίτη).
  • Βάση κώδικα C# που είναι εύκολο να εξελιχθεί και να επεκταθεί.


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

Αυτό το άρθρο χρησιμοποιεί τα ενσωματωμένα εργαλεία συγκριτικής αξιολόγησης της Redis για απλές δοκιμές και το περιβάλλον δοκιμής έχει ως εξής:

Δοκιμή απόδοσης Redis Benchmark
https://www.itsvse.com/thread-9645-1-1.html

κρύβωεκδοχή
ΡέντιςRedis 3.0.504 (00000000/0) 64 bit
ΓκρενάΓρανάτης 1.0.2 64 bit; αυτόνομη λειτουργία


Σημεία αναφοράς Redis

Αρχικά, εκκινήστε την προσωρινή μνήμη Redis χρησιμοποιώντας τη γραμμή εντολών με την ακόλουθη εντολή:


Η εντολή δοκιμής είναι η εξής:


Τα αποτελέσματα έχουν ως εξής:



====== ΣΕΤ ======
  500000 αιτήσεις ολοκληρώθηκαν σε 24.38 δευτερόλεπτα
  100 παράλληλοι πελάτες
  Φορτίο 3 byte
  Διατήρηση της ζωής: 1

0,03% <= 1 χιλιοστά του δευτερολέπτου
0,25% <= 2 χιλιοστά του δευτερολέπτου
2,65% <= 3 χιλιοστά του δευτερολέπτου
16,49% <= 4 χιλιοστά του δευτερολέπτου
59,95% <= 5 χιλιοστά του δευτερολέπτου
99,09% <= 6 χιλιοστά του δευτερολέπτου
99,76% <= 7 χιλιοστά του δευτερολέπτου
99,86% <= 8 χιλιοστά του δευτερολέπτου
99,93% <= 9 χιλιοστά του δευτερολέπτου
99,98% <= 10 χιλιοστά του δευτερολέπτου
99,99% <= 11 χιλιοστά του δευτερολέπτου
100,00% <= 12 χιλιοστά του δευτερολέπτου
20512,82 αιτήματα ανά δευτερόλεπτο

====== ΑΠΟΚΤΉΣΤΕ ======
  500000 αιτήσεις ολοκληρώθηκαν σε 27.41 δευτερόλεπτα
  100 παράλληλοι πελάτες
  Φορτίο 3 byte
  Διατήρηση της ζωής: 1

0,03% <= 1 χιλιοστά του δευτερολέπτου
0,19% <= 2 χιλιοστά του δευτερολέπτου
6,44% <= 3 χιλιοστά του δευτερολέπτου
25,82% <= 4 χιλιοστά του δευτερολέπτου
45,65% <= 5 χιλιοστά του δευτερολέπτου
98,79% <= 6 χιλιοστά του δευτερολέπτου
99,98% <= 7 χιλιοστά του δευτερολέπτου
99,98% <= 8 χιλιοστά του δευτερολέπτου
99,98% <= 9 χιλιοστά του δευτερολέπτου
100,00% <= 9 χιλιοστά του δευτερολέπτου
18238,86 αιτήματα ανά δευτερόλεπτο

Δείκτες αναφοράς γρανάτη

Δημιουργήστε ένα νέο έργο κονσόλας .NET 8 και αναφέρετε πρώτα το πακέτο Microsoft.Garnet με την ακόλουθη εντολή:


Ο κωδικός έχει ως εξής:


Η εντολή εκκίνησης είναι η εξής:


Χρησιμοποιώντας την ίδια εντολή benchmark, το αποτέλεσμα είναι το εξής:



====== ΣΕΤ ======
  500000 αιτήσεις ολοκληρώθηκαν σε 11.51 δευτερόλεπτα
  100 παράλληλοι πελάτες
  Φορτίο 3 byte
  Διατήρηση της ζωής: 1

75,51% <= 1 χιλιοστά του δευτερολέπτου
88,24% <= 2 χιλιοστά του δευτερολέπτου
92,04% <= 3 χιλιοστά του δευτερολέπτου
99,46% <= 4 χιλιοστά του δευτερολέπτου
99,98% <= 5 χιλιοστά του δευτερολέπτου
99,99% <= 6 χιλιοστά του δευτερολέπτου
100,00% <= 12 χιλιοστά του δευτερολέπτου
100,00% <= 12 χιλιοστά του δευτερολέπτου
43448.04 αιτήματα ανά δευτερόλεπτο

====== ΑΠΟΚΤΉΣΤΕ ======
  500000 αιτήσεις ολοκληρώθηκαν σε 31.50 δευτερόλεπτα
  100 παράλληλοι πελάτες
  Φορτίο 3 byte
  Διατήρηση της ζωής: 1

0,01% <= 1 χιλιοστά του δευτερολέπτου
0,90% <= 2 χιλιοστά του δευτερολέπτου
27,25% <= 3 χιλιοστά του δευτερολέπτου
97,65% <= 4 χιλιοστά του δευτερολέπτου
99,82% <= 5 χιλιοστά του δευτερολέπτου
99,94% <= 6 χιλιοστά του δευτερολέπτου
99,98% <= 7 χιλιοστά του δευτερολέπτου
99,98% <= 9 χιλιοστά του δευτερολέπτου
99,98% <= 10 χιλιοστά του δευτερολέπτου
99,99% <= 11 χιλιοστά του δευτερολέπτου
100,00% <= 12 χιλιοστά του δευτερολέπτου
100,00% <= 12 χιλιοστά του δευτερολέπτου
15872.01 αιτήματα ανά δευτερόλεπτο

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

(Τέλος)




Προηγούμενος:.NET/C#, το οποίο μπορεί να κριθεί με μηδενικούς τύπους
Επόμενος:Το SSE (1) χρησιμοποιεί το ASP.NET Core ως διακομιστή SSE
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2024-3-28 18:01:32 |
Το KeyDB είναι μια βάση δεδομένων εντελώς ανοιχτού κώδικα που υποστηρίζεται από το Snap και είναι μια ταχύτερη εναλλακτική λύση στο Redis. Διεύθυνση:https://docs.keydb.dev/
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-9-3 09:36:07 |
ΠΙΟ ΓΡΗΓΟΡΑ: Γρήγορη ταυτόχρονη μόνιμη αποθήκευση κλειδιού-τιμής και καταγραφή σε C# και C++.
        
Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Πηγή:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com