background image

σύστημα αποθήκευσης μνήμης, memcache.

Η memcache διανέμεται δωρεάν, είναι ανοιχτού κώδικα, υψηλής απόδοσης κατα-

νεμημένο σύστημα αποθήκευσης αντικειμένων μνήμης γενικής φύσης. Κυρίως προο-

ρίζεται για χρήση στην επιτάχυνση δυναμικών εφαρμογών ιστού, μειώνοντας το φορ-

τίο της βάσης δεδομένων. Βασίζεται στην αποθήκευση με τιμή κλειδιού για μικρά

κομμάτια αυθαίρετων δεδομένων (συμβολοσειρές, αντικείμενα) από αποτελέσματα

κλήσεων βάσης δεδομένων,τα οποία είναι διαθέσιμα για τις πιο δημοφιλείς γλώσσες.

Παρέχει ένα τεράστιο λεξικό διαθέσιμο στο δίκτυο το οποίο διαφοροποιείται από

ένα κλασικό Python λεξικό, στα εξής:

• Τα κλειδιά και οι τιμές πρέπει να είναι bytes

• Τα κλειδιά και οι τιμές διαγράφονται αυτόματα μετά από ένα χρονικό διά-

στημα

Οι clients (πελάτες) της memcache επικοινωνούν με διακομιστή μέσω συνδέσεων

TCP. Ο διακομιστής μνήμης memcache που εκτελείται ακούει σε μια διαμορφώσιμη

θύρα και οι πελάτες που συνδέονται σε αυτήν τη θύρα, στέλνουν και λαμβάνουν

δεδομένα στο διακομιστή.

Στην

παρούσα

υλοποίηση

έγινε

η

εγκατάσταση

της

βιβλιοθήκης

Python

pymemcache_client και του memcache server ο οποίος τρέχει τοπικά στο σύστημα.

Σε κάθε σενάριο κώδικα προκειμένου να συνδεθούν με τον server εγκαθιδρύουν μια

σύνδεση client με τη μέθοδο base.Client(). Αφού γίνει αυτό δυο σημαντικές μέθοδοι

που χρησιμοποιούνται στη memcache είναι η μέθοδος set() και get(). Στη πρώτη

περίπτωση για την εισαγωγή δεδομένων στο server απαιτείται πρώτα η μετατροπή

του στοιχείου σε JSON string μέσω της μέθοδού json.dumps() και ακολούθως η με-

ταφορά του χρησιμοποιώντας τη client.set(‘key’, data_str). Το όρισμα key είναι το

χαρακτηριστικό όνομα που θα συνοδεύει τα δεδομένα που αποστάλθηκαν και θα

επιτρέπει να ληφθούν από άλλους client. Κατά αντιστοιχία για την λήψη των δεδο-

μένων χρησιμοποιείται αρχικά η μέθοδος client.get(‘key’) και εν συνέχεια για την

μετατροπή του JSON στην αρχική μορφή των δεδομένων η μέθοδος json.loads(). Στα

σενάρια κώδικα το σύνολο των πληροφορίων που συνήθως δομούνται σε λίστες είναι

απαραίτητο να μεταφέρονται και να λαμβάνονται με τη μεγαλύτερη ταχύτητα και

132