Memcached και υψηλής απόδοσης MySQL - 💡 Fix My Ideas

Memcached και υψηλής απόδοσης MySQL

Memcached και υψηλής απόδοσης MySQL


Συγγραφέας: Ethan Holmes, 2019

Το Memcached είναι ένα σύστημα προσωρινής αποθήκευσης κατανεμημένων αντικειμένων που αναπτύχθηκε αρχικά για να βελτιώσει την απόδοση του LiveJournal και στη συνέχεια χρησιμοποιήθηκε ως στρατηγική κλιμάκωσης για έναν αριθμό τοποθεσιών υψηλού φορτίου. Χρησιμεύει ως ένας μεγάλος, εξαιρετικά γρήγορος πίνακας κατακερματισμού που μπορεί να διανεμηθεί σε πολλούς διακομιστές και να προσπελαστεί ταυτόχρονα από πολλές διαδικασίες. Έχει σχεδιαστεί για να χρησιμοποιείται σχεδόν για οποιαδήποτε ανάγκη από back-end caching και για εφαρμογές ιστού υψηλής απόδοσης, είναι ένα μεγάλο συμπλήρωμα σε μια βάση δεδομένων όπως η MySQL.

Σε ένα τυπικό περιβάλλον, ένας προγραμματιστής ιστού μπορεί να χρησιμοποιήσει έναν συνδυασμό προσωρινής αποθήκευσης στο επίπεδο διαδικασίας και την ενσωματωμένη κρυπτογράφηση ερωτημάτων MySQL για να αποδείξει ότι το επιπλέον bit απόδοσης από μια εφαρμογή. Το πρόβλημα είναι ότι η προσωρινή αποθήκευση κατά τη διάρκεια της διαδικασίας περιορίζεται στη διαδικασία διαδικτύου που εκτελείται σε ένα μόνο διακομιστή. Σε μια διαμόρφωση ισορροπημένου φορτίου, κάθε διακομιστής διατηρεί τη δική του κρυφή μνήμη, περιορίζοντας την απόδοση και το διαθέσιμο μέγεθος της κρυφής μνήμης. Ομοίως, η προσωρινή μνήμη ερωτήσεων της MySQL περιορίζεται στο διακομιστή στον οποίο εκτελείται η διαδικασία MySQL. Η προσωρινή μνήμη ερωτήματος είναι επίσης περιορισμένη επειδή μπορεί να αποθηκεύσει μόνο τα αποτελέσματα σειράς. Με το memcached μπορείτε να ρυθμίσετε διακομιστές μνήμης cache, οι οποίοι μπορούν να αποθηκεύσουν οποιοδήποτε τύπο σειριακού αντικειμένου και αυτά τα δεδομένα μπορούν να μοιραστούν από όλους τους διακομιστές ισορροπίας φορτίου. Ωραία, όχι;

Για να ρυθμίσετε ένα memcached διακομιστή, μπορείτε απλά να κατεβάσετε το δαίμονα και να το εκτελέσετε με μερικές παραμέτρους. Από τη διαδικτυακή τοποθεσία memcached:

Κατ 'αρχάς, ξεκινάτε το δαίμονα του memcached σε τόσες εφεδρικές μηχανές όπως έχετε. Ο δαίμονας δεν έχει αρχείο ρυθμίσεων, μερικές μόνο επιλογές γραμμής εντολών, μόνο 3 ή 4 από τις οποίες θα χρησιμοποιήσετε πιθανώς:

# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211

Αυτό ξεκινά με τη μνήμη ως δαίμονα, χρησιμοποιώντας 2GB μνήμης και ακούγοντας την IP 10.0.0.40, τη θύρα 11211. Επειδή μια διαδικασία 32-bit μπορεί να απευθύνει μόνο 4GB εικονικής μνήμης (συνήθως σημαντικά λιγότερη, ανάλογα με το λειτουργικό σας σύστημα) έχετε ένα διακομιστή 32-bit με μνήμη 4-64GB χρησιμοποιώντας PAE, μπορείτε απλά να εκτελέσετε πολλές διαδικασίες στο μηχάνημα, το καθένα χρησιμοποιώντας 2 ή 3GB μνήμης.

Είναι περίπου τόσο απλό όσο παίρνει. Δεν υπάρχει πραγματική διαμόρφωση. Δεν υπάρχει έλεγχος ταυτότητας. Είναι απλώς ένας πίνακας κατακερματισμού γίγαντας. Προφανώς, ορίσατε αυτό σε ένα ιδιωτικό, μη διευθυνσιοδοτούμενο δίκτυο. Από εκεί, το έργο της ερώτησης και της ενημέρωσης της προσωρινής μνήμης είναι εντελώς μέχρι το σχεδιαστή εφαρμογών. Σας παρέχονται οι βασικές λειτουργίες του set, get και delete. Εδώ είναι ένα απλό παράδειγμα στην PHP:

$ memcache = νέα Memcache; $ memcache-> addServer ('10 .0.0.40 ', 11211); $ memcache-> addServer ('10 .0.0.41 ', 11211);

$ value = "Δεδομένα στην κρυφή μνήμη";

$ memcache-> set ('το κλειδί', $ αξία, 60); echo "Caching για 60 δευτερόλεπτα: αξία $
“;

$ retrieved = $ memcache-> get ('το κλειδί'); echo "Ανακτήθηκε: $ ανακτήθηκε
“;

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

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

Έχω συνδέσει με λίγους πόρους παρακάτω, όπου μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τη χρήση του memcached στην αίτησή σας. Εκτός από την τεκμηρίωση σχετικά με την ιστοσελίδα memcached, ο Todd Hoff έχει συντάξει μια λίστα με άρθρα σχετικά με memcached και συνοψίζει διάφορες memcached τεχνικές επιδόσεων. Είναι ένα πολύ ευπροσάρμοστο εργαλείο. Για όσους από εσάς έχετε χρησιμοποιήσει το memcached, δώστε μας μια φωνή στα σχόλια και μοιραστείτε τις συμβουλές και τα κόλπα σας.

Αποθηκευμένες στρατηγικές για τη χρήση του Memcached και του MySQL Better Together Memcached και του MySQL tutorial (PDF)



Μπορεί Να Σας Ενδιαφέρει

Κάνετε: Οδηγός δώρων για διακοπές 2009: Μέσα για τους κατασκευαστές

Κάνετε: Οδηγός δώρων για διακοπές 2009: Μέσα για τους κατασκευαστές


Πώς να κάνετε: Cookies Cookies

Πώς να κάνετε: Cookies Cookies


Οδηγός δώρων διακοπών 2009: Σετ χειροτεχνίας

Οδηγός δώρων διακοπών 2009: Σετ χειροτεχνίας


Ξεχάστε το φόρεμα για να εντυπωσιάσετε, να κάνετε κομμάτια για να εντυπωσιάσετε: Συνταγή BBQ με βόειο κρέας

Ξεχάστε το φόρεμα για να εντυπωσιάσετε, να κάνετε κομμάτια για να εντυπωσιάσετε: Συνταγή BBQ με βόειο κρέας