Εγκαθιστώντας το Redis server μπορούμε να έχουμε άμεσα in-memory data structure server αυτο σημαίνει είναι ένα είδος αποθήκευσης δομών δεδομένα πάνω στη μνήμη RAM. Αυτό κάνει δυνατόν να έχει προβαση στα δεδομένα πιο γρήγορα σε αντίθεση με ένα σχεσιακό σύστημα βάσης δεδομένων ή τύπου NoSql όπου τα δεδομένα αποθηκεύονται στο σκληρό δίσκο.

Τι είναι Κey-Value Database

To redis ανήκει στη κατηγορια key-value database αυτό σημαίνει ο τρόπος αποθήκευσης είναι associative arrays με τη διαφορά ότι η αποθήκευση είναι αποκλειστικά στη μνήμη ram και όταν κλείνει τότε αυτά τα δεδομένα αποθηκεύονται στο σκληρό δίσκο. Για παράδειγμα κάτι αντίστοιχο αποθήκευση τέτοιον δεδομένων η Amazon Dynamo που είναι τύπου hosted services που ανήκει στην οικογένεια εφαρμογών της AWS.

To redis συγκεκριμένα υποστηρίζει πέντε διαφορετικούς τύπου δεδομένων αλφαριθμητικά (strings), (hashes), λίστες (lists) , σύνολα (sets) και διατεταγμένα σύνολα (zsets). Bέβαια οι περιπτώσεις στις οποίες μας χρησιμεύει αυτού του τύπου η αποθήκευση δεν είναι συνηθησμένες και περιλαμβάνει λειτουργίες στις οποίες τα δεδομένα είναι μικρά και ταυτόχρονα δεν είναι critical data.

Τα πρώτα βήματα

ΕΓΚΑΤΑΣΤΑΣΗ

sudo apt-get install redis-server

μας βρίσκει από τα repository της canonical τη τελευταία έκδοση του Redis Server και την εγκαθιστά αμέσως στον υπολογιστής μας

/etc/init.d/redis-server start

ΡΥΘΜΙΣΕΙΣ

/etc/mongodb.conf

στο παραπάνω αρχείο βρίσκονται οι ρυθμίσεις του redis

ΕΚΚΙΝΗΣΗ, ΠΑΥΣΗ, ΕΠΑΝΕΚΚΙΝΗΣΗ ΤΟΥ REDIS SERVER
η εκκίνηση, παύση, επανεκκίνηση γίνεται με τις παρακάτω εντολές

sudo /etc/init.d/redis-server start
sudo /etc/init.d/redis-server stop
sudo /etc/init.d/redis-server restart

ΣΥΝΔΕΣΗ ΣΤΟ REDIS SERVER
στο τερματικό πληκτρολογούμε την παρακάτω εντολή και συνδεόμαστε

redis-cli

στο τοπικό redis-server βλέποντας redis 127.0.0.1:6379> .ο redis server ουσιαστικά αποθηκεύει σε κλειδιά δομές δεδομένων (data structure) . Ο δομές δεδομένων που μπορείται να αποθηκεύσεται είναι αλφαριθμητικά Strings (αλφαριθμητικά)

set key 'lorem ipsum'
get key

Lists (λίστες) Οι λίστες είναι απλά είναι είναι μια ομάδα αλφαριθμητικών οι οποίες διατάσσονται με βάση τη σειρά εισαγωγής, μπορούμε να εισάγουμε στοιχεία σε μία λίστα με τη την εντολή lpush τοποθετεί ένα καινούργιο στοιχείο στην αρχή της λίστας όπως για παράδειγμα

Lpush chat "what's up?"
Lpush chat "Nothing Much?"

Για να εμφανίσουμε τα δύο πρώτα στοιχεία της λίστας χρησιμοποιούμε την εντολή lrange χρησιμοποιώντας τους δείκτες 0, 1

Lrange chat 0 1

Επιπλέον δομές δεδομένων που υποστηρίζει το redis server είναι τα σύνολα(sets), διατεταγμένα σύνολα (order sets) και hashes.

Ποιες είναι οι περιπτώσεις χρήσης redis

Μπορεί να χρησιμοποιήθεις δημιουργία ενός σε web application και υπάρχουν πολλά

  • Login Session
  • Shopping cart cookies and abandoned cart recovery
  • Leaderboards and counting
  • Message queues
  • Webpage Caching

Σε γενικές γραμμές σε προβλήματα που προκύπτουν σε web εφαρμογές υψηλής επισκεψιμότας

PHP framework με redis

όλα τα μοντέρνα web frameworks έχουν αναπτύξει wrappers, extensions, plugins όπου μπορεί να διευκολύνουν τη χρήση του redis σε μεγάλο βαθμό. Για παράδειγμα το yii2 framework έχει τη redis extension. To Laravel δεν έχει native extension αλλά βασίζεται στο predis/predis όπου μπορεί να εγκατασταθεί με το composer και μπορεί να γίνει αλληλεπίδραση με το redis server με laravel facades αλλά έχει ένα καλό wrapper για να χρήση του μοντέλου publish-subscribe pattern το οποίο διευκολύνει την επικοινωνία με άλλες εφαρμογές και προγραμματιστικές διεργασίας σε laravel project