Κοινή χρήση τεχνολογίας

Διαμόρφωση και βελτιστοποίηση NoSQL redis

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Βασική εισαγωγή και σύγκριση της βάσης δεδομένων redis

Το Redis (RemoteDictionaryServer, τύπος απομακρυσμένου λεξικού) είναι μια βάση δεδομένων NoSQL ανοιχτού κώδικα γραμμένη σε γλώσσα C. Το Redis εκτελείται με βάση τη μνήμη και υποστηρίζει την επιμονή.

1. Μη σχεσιακή βάση δεδομένων

NoSQL (NoSQL= Όχι μόνο SQL), που σημαίνει "όχι μόνο SQL", είναι ο γενικός όρος για τις μη σχεσιακές βάσεις δεδομένων. Οι κύριες βάσεις δεδομένων NoSQL περιλαμβάνουν τις Redis, MongBD, Hbase, CouhDB, κ.λπ. Οι παραπάνω μη σχεσιακές βάσεις δεδομένων είναι εντελώς διαφορετικές ως προς τις μεθόδους αποθήκευσης, τις δομές αποθήκευσης και τα σενάρια χρήσης. Έτσι πιστεύουμε ότι είναι μια συλλογή από μη σχεσιακές βάσεις δεδομένων, όχι ένας γενικός όρος όπως οι σχεσιακές βάσεις δεδομένων. Με άλλα λόγια, οι βάσεις δεδομένων εκτός από τις κύριες σχεσιακές βάσεις δεδομένων μπορούν να θεωρηθούν μη σχεσιακές. Η βάση δεδομένων NOSQL θεωρείται ότι είναι το προϊόν βάσης δεδομένων επόμενης γενιάς λόγω των πλεονεκτημάτων της στη μη σχεσιακή, κατανεμημένη, ανοιχτού κώδικα και οριζόντια επέκταση.

2. Σχεσιακή βάση δεδομένων

Μια σχεσιακή βάση δεδομένων είναι μια δομημένη βάση δεδομένων που βασίζεται σε ένα σχεσιακό μοντέλο και είναι γενικά προσανατολισμένη στην εγγραφή. Επεξεργάζεται δεδομένα σε βάσεις δεδομένων με τη βοήθεια μαθηματικών εννοιών και μεθόδων όπως η άλγεβρα συνόλων. Το σχεσιακό μοντέλο αναφέρεται στο μοντέλο του δισδιάστατου πίνακα, επομένως μια σχεσιακή βάση δεδομένων είναι μια οργάνωση δεδομένων που αποτελείται από δισδιάστατους πίνακες και τις σχέσεις μεταξύ τους. Στον πραγματικό κόσμο, διάφορες οντότητες και διάφορες σχέσεις μεταξύ οντοτήτων μπορούν να αναπαρασταθούν με σχεσιακά μοντέλα. Η δήλωση SQL (Standard Data Query Language) είναι μια γλώσσα που βασίζεται σε μια σχεσιακή βάση δεδομένων και χρησιμοποιείται για την ανάκτηση και τη λειτουργία δεδομένων σε μια σχεσιακή βάση δεδομένων.

3. Ιστορικό μη σχεσιακών βάσεων δεδομένων

Με την άνοδο των ιστότοπων Web2.0, οι σχεσιακές βάσεις δεδομένων εκτίθενται όταν ασχολούμαστε με ιστοσελίδες Web2.0, ειδικά Web2.0 καθαρά δυναμικές ιστοσελίδες με τεράστια δεδομένα και SNS υψηλής συγχρονισμού (Υπηρεσίες Κοινωνικής Δικτύωσης, δηλαδή υπηρεσίες κοινωνικών δικτύων). που είναι δύσκολο να λυθούν, όπως το πρόβλημα τριών υψηλών.

(1) Υψηλή απόδοση -- υψηλές απαιτήσεις ταυτόχρονης ανάγνωσης και γραφής για τη βάση δεδομένων

Οι ιστότοποι Web2.0 θα δημιουργούν δυναμικές σελίδες και θα παρέχουν δυναμικές πληροφορίες σε πραγματικό χρόνο με βάση τις εξατομικευμένες πληροφορίες του χρήστη, επομένως δεν μπορεί να χρησιμοποιηθεί η στατική τεχνολογία δυναμικής σελίδας. Επομένως, ο ταυτόχρονος φόρτος της βάσης δεδομένων είναι πολύ υψηλός, φθάνοντας γενικά σε περισσότερα από 10.000 αιτήματα/α για ανάγνωση και εγγραφή. Η σχεσιακή βάση δεδομένων μπορεί να υποστηρίξει μετά βίας δεκάδες χιλιάδες αιτήματα ερωτημάτων, αλλά αν υπάρχουν δεκάδες χιλιάδες αιτήσεις εγγραφής δεδομένων, ο σκληρός δίσκος I0 δεν μπορεί πλέον να το αντέξει. Για τους συνηθισμένους ιστότοπους της BBS, υπάρχουν συχνά υψηλά ταυτόχρονα αιτήματα εγγραφής δεδομένων.

(2) Τεράστια αποθήκευση--Απαιτήσεις για αποτελεσματική αποθήκευση και πρόσβαση σε μαζικά δεδομένα

Οι ιστότοποι SNS, όπως το Facebook και το Friendfeed, παράγουν καθημερινά μεγάλο όγκο δυναμικών πληροφοριών χρήστη. Για παράδειγμα, το Friendfeed θα δημιουργήσει τουλάχιστον 250 εκατομμύρια δυναμικές πληροφορίες χρήστη σε ένα μήνα.

(3)Υψηλή επεκτασιμότητα && υψηλή διαθεσιμότητα--Απαιτήσεις για υψηλή επεκτασιμότητα και υψηλή διαθεσιμότητα βάσεων δεδομένων

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

Οι σχεσιακές βάσεις δεδομένων και οι μη σχεσιακές βάσεις δεδομένων έχουν τα δικά τους χαρακτηριστικά και τα δικά τους σενάρια εφαρμογής Ο στενός συνδυασμός των δύο θα φέρει νέες ιδέες στην ανάπτυξη βάσεων δεδομένων Web2.0. Αφήστε τις σχεσιακές βάσεις δεδομένων να εστιάζουν στις σχέσεις και οι μη σχεσιακές βάσεις δεδομένων να εστιάζουν στην αποθήκευση. Για παράδειγμα, σε ένα περιβάλλον βάσης δεδομένων MySQL όπου η ανάγνωση και η γραφή διαχωρίζονται, τα δεδομένα με συχνή πρόσβαση μπορούν να αποθηκευτούν σε μια μη σχεσιακή βάση δεδομένων για τη βελτίωση της ταχύτητας πρόσβασης.

4.Πλεονεκτήματα του Redis

Έχει εξαιρετικά υψηλές ταχύτητες ανάγνωσης και εγγραφής δεδομένων Η ταχύτητα ανάγνωσης δεδομένων μπορεί να φτάσει έως και 110.000 φορές/δευτερόλεπτο και η ταχύτητα εγγραφής δεδομένων μπορεί να φτάσει έως και 81.000 φορές/δευτερόλεπτο.

Υποστηρίζει τύπους εμπλουτισμένων δεδομένων, όχι μόνο υποστηρίζει απλά δεδομένα τύπου κλειδιού-τιμής, αλλά υποστηρίζει επίσης λειτουργίες τύπου δεδομένων όπως Συμβολοσειρές, Λίστες, Κατακερματισμοί, Σύνολα και Διατεταγμένα σύνολα.

Υποστηρίζει τη διατήρηση δεδομένων Τα δεδομένα στη μνήμη μπορούν να αποθηκευτούν στο δίσκο και μπορούν να φορτωθούν ξανά για χρήση κατά την επανεκκίνηση.

Ατομική, όλες οι λειτουργίες Redis είναι ατομικές.

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

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

2. Εγκατάσταση και βελτιστοποίηση του redis

1: Εγκατάσταση

[root@localhost ~]# systemctl stop firewalld //Στο πειραματικό περιβάλλον, η απενεργοποίηση του τείχους προστασίας δεν έχει αποτέλεσμα. Δεν συνιστάται η απενεργοποίηση του στο περιβάλλον παραγωγής.

[root@localhost ~]# setenforce 0 // Απενεργοποιήστε τον πυρήνα, που θα εμποδίσει την εκτέλεση της εφαρμογής.

[root@localhost ~]# yum -y install gcc* zlib-devel //Λήψη των εργαλείων που απαιτούνται για την αποσυμπίεση του πακέτου tar

[root@localhost ~]#Το tar xvzf redis-4.0.9.tar.gz //redis είναι μια εφαρμογή ανοιχτού κώδικα και δωρεάν Μπορείτε να κάνετε λήψη αυτού του πακέτου από τον επίσημο ιστότοπο

[root@localhost ~]#cd redis-4.0.9/

[root@localhost redis-4.0.9]# make

Ειδοποίηση:

Κατά την πραγματοποίηση, ενδέχεται να εμφανιστεί το ακόλουθο μήνυμα σφάλματος:

Λύση 1: Χρήσηκάνω MALLOC=lΤο ibc καθορίζει τον εκχωρητή μνήμης για το libcσυντάσσω

Λύση 2: καθαρίστε && make distclean

[root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install

[root@localhost ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/

[root@localhost redis-4.0.9]# cd /root/redis-4.0.9/utils/

[root@localhost utils]# ./install_server.sh

Παρατήρηση:

Αρχείο διαμόρφωσης: /etc/redis/6379.conf //Διαδρομή αρχείου διαμόρφωσης

Αρχείο καταγραφής: /var/log/redis_6379.log //Διαδρομή αρχείου καταγραφής

Διεύθυνση δεδομένων: /var/lib/redis/6379 //Διαδρομή αρχείου δεδομένων

Εκτελέσιμο: /usr/local/redis/bin/redis-server //εκτελέσιμα διαδρομή αρχείου

Εκτελέσιμο Cli: /usr/local/redis/bin/redis-cli //Εργαλείο γραμμής εντολών πελάτη

2: Δείτε τη διαδικασία

[root@localhost utils]# netstat -anpt | grep redis

3: Έλεγχος σέρβις

[root@localhost ~]#/etc/init.d/redis_6379 stop

[root@localhost ~]#/etc/init.d/redis_6379 start

[root@localhost ~]#/etc/init.d/redis_6379 επανεκκίνηση

[root@localhost ~]#/etc/init.d/redis_6379 κατάσταση

4: Τροποποίηση των παραμέτρων διαμόρφωσης

[root@localhost ~]#vim /etc/redis/6379.conf

δέσμευση 127.0.0.1 192.168.10.101    //Διεύθυνση κεντρικού υπολογιστή ακρόασης

θύρα 6379 //Λιμάνι

δαιμονίζω ναι //Ενεργοποίηση διαδικασίας δαίμονα

pidfile /var/run/redis_6379.pid //Καθορισμός αρχείου PID

ειδοποίηση loglevel //επίπεδο καταγραφής

logfile /var/log/redis_6379.log //Καθορισμός αρχείου καταγραφής

[root@localhost~]#/etc/init.d/redis_6379 επανεκκίνηση

[root@localhost utils]# netstat -anpt | grep redis

3. Εργαλείο εντολών Redis

Ø redis-server: εργαλείο για την εκκίνηση του Redis.

Ø redis-benchmark: χρησιμοποιείται για τον εντοπισμό της αποδοτικότητας λειτουργίας του Redis σε αυτό το μηχάνημα.

Ø redis-check-aof: Επιδιόρθωση αρχείου επιμονής AOF.

Ø redis-check-rdb: Επιδιόρθωση αρχείων επιμονής RDB.

Ø redis-cli: Εργαλείο γραμμής εντολών Redis.

1: εργαλείο γραμμής εντολών redis-cli

(1) Σύνδεση σε τοπικό redis

[root@localhost ~]# redis-cli

127.0.0.1:6379>

(2) Ελέγξτε εάν έχει ξεκινήσει η υπηρεσία redis

127.0.0.1:6379> ping

PONG

(3) Απομακρυσμένη σύνδεση

[root@localhost ~]#redis-cli -h 192.168.10.101 -p 6379

2: Ζητήστε βοήθεια

Ø help@<group> :Αποκτώ<group> Λίστα εντολών σε ;

Ø βοήθεια<command> : Λάβετε βοήθεια για μια συγκεκριμένη εντολή.

Ø βοήθεια<tab> : Λάβετε μια λίστα με θέματα που μπορεί να σας βοηθήσουν.

Παρατήρηση:

Ø βοήθεια<tab> : Λάβετε μια λίστα με θέματα που μπορεί να σας βοηθήσουν.

Αφού πληκτρολογήσετε βοήθεια, πατήστε το πλήκτρο tab

(1)Προβολή όλων των εντολών που σχετίζονται με τον τύπο δεδομένων Λίστα

127.0.0.1:6379&gt;help @list

(2)Προβάλετε τη βοήθεια της εντολής για την εντολή set

127.0.0.1:6379&gt;σύνολο βοήθειας

3: εργαλείο δοκιμών redis-benchmark

Το redis-benchmark είναι το επίσημο εργαλείο δοκιμών απόδοσης Redis που μπορεί να ελέγξει αποτελεσματικά την απόδοση των υπηρεσιών Redis.

Ø -h: Καθορίστε το όνομα του κεντρικού υπολογιστή του διακομιστή.

Ø -p: Καθορίστε τη θύρα διακομιστή.

Ø -s: Καθορίστε την υποδοχή διακομιστή.

Ø -c: Καθορίστε τον αριθμό των ταυτόχρονων συνδέσεων.

Ø -n: Καθορίστε τον αριθμό των αιτημάτων.

Ø -d: Καθορίστε το μέγεθος δεδομένων της τιμής SET/GET σε byte.

Ø -k:1=διατήρηση ζωής 0=επανασύνδεση;

Ø -r: Το SET/GET/INCR χρησιμοποιεί τυχαία κλειδιά, το SADD χρησιμοποιεί τυχαίες τιμές.

Ø -P: Μετάδοση μέσω σωλήνων<numreq> παρακαλώ;

Ø -q: Αναγκαστική έξοδος από το redis. Εμφανίζονται μόνο τιμές ερωτήματος/δευτ.

Ø --csv: Έξοδος σε μορφή CSV.

Ø -l: Δημιουργήστε έναν βρόχο και εκτελέστε τη δοκιμή μόνιμα.

Ø -t: Εκτελέστε μόνο μια λίστα δοκιμαστικών εντολών διαχωρισμένων με κόμματα.

Ø -I: Λειτουργία αδράνειας. Ανοίξτε μόνο N συνδέσεις αδράνειας και περιμένετε.

(1) Δοκιμή απόδοσης αιτήματος

[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000 //Αποστολή 100 ταυτόχρονων συνδέσεων και 100.000 δοκιμών αιτήματος στον διακομιστή Redis με διεύθυνση IP 192.617 επιδόσεις 192.617.

Παρατήρηση:

Ø -h: Καθορίστε το όνομα του κεντρικού υπολογιστή του διακομιστή.

Ø -p: Καθορίστε τη θύρα διακομιστή.

Ø -c: Καθορίστε τον αριθμό των ταυτόχρονων συνδέσεων.

Ø -n: Καθορίστε τον αριθμό των αιτημάτων.

====== MSET (10 κλειδιά) ======

100000 αιτήματα ολοκληρώθηκαν σε 1,02 δευτερόλεπτα

100 παράλληλοι πελάτες ##100 ταυτόχρονες συνδέσεις

ωφέλιμο φορτίο 3 byte

διατηρώ τη ζωή: 1

87,25% &lt;= 1 χιλιοστά του δευτερολέπτου ##87,25% των χρόνων εκτέλεσης εντολών είναι μικρότεροι ή ίσοι με 1 χιλιοστό του δευτερολέπτου

99,90% &lt;= 2 χιλιοστά του δευτερολέπτου

100,00% &lt;= 2 χιλιοστά του δευτερολέπτου

97943,19 αιτήματα ανά δευτερόλεπτο #Αριθμός αιτημάτων ανά δευτερόλεπτο

(2) Δοκιμή απόδοσης πρόσβασης

[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100

Παρατήρηση:

Ø -h: Καθορίστε το όνομα του κεντρικού υπολογιστή του διακομιστή.

Ø -p: Καθορίστε τη θύρα διακομιστή.

Ø -d: Καθορίστε το μέγεθος δεδομένων της τιμής SET/GET σε byte.

Ø -q: Αναγκαστική έξοδος από το redis. Εμφανίζονται μόνο τιμές ερωτήματος/δευτ.

PING_INLINE: 121506,68 αιτήματα ανά δευτερόλεπτο //Πόσες λειτουργίες PING ολοκληρώνονται ανά δευτερόλεπτο

PING_BULK: 124378,11 αιτήματα ανά δευτερόλεπτο

ΣΕΤ: 121654,50 αιτήματα ανά δευτερόλεπτο //Πόσες φορές ανά δευτερόλεπτο ολοκληρώνεται η τιμή του κλειδιού SET

GET: 122100,12 αιτήματα ανά δευτερόλεπτο //Πόσες τιμές κλειδιού GET ολοκληρώθηκαν ανά δευτερόλεπτο

INCR: 118764,84 αιτήματα ανά δευτερόλεπτο //Πόσες ατομικές μετρήσεις ολοκληρώνονται ανά δευτερόλεπτο

LPUSH: 112612,61 αιτήματα ανά δευτερόλεπτο

RPUSH: 118623,96 αιτήματα ανά δευτερόλεπτο

LPOP: 107874,87 αιτήματα ανά δευτερόλεπτο

RPOP: 114416,48 αιτήματα ανά δευτερόλεπτο

SADD: 123304,56 αιτήματα ανά δευτερόλεπτο

HSET: 122249,38 αιτήματα ανά δευτερόλεπτο

SPOP: 128040,97 αιτήματα ανά δευτερόλεπτο

LPUSH (απαιτείται για τη συγκριτική αξιολόγηση LRANGE): 116686,12 αιτήματα ανά δευτερόλεπτο

LRANGE_100 (πρώτα 100 στοιχεία): 40016,00 αιτήματα ανά δευτερόλεπτο

LRANGE_300 (πρώτα 300 στοιχεία): 11991,85 αιτήματα ανά δευτερόλεπτο

LRANGE_500 (πρώτα 450 στοιχεία): 7381,71 αιτήματα ανά δευτερόλεπτο

LRANGE_600 (πρώτα 600 στοιχεία): 5230,67 αιτήματα ανά δευτερόλεπτο

MSET (10 κλειδιά): 92421,44 αιτήματα ανά δευτερόλεπτο //Πολλαπλό πλήκτρο v ανά δευτερόλεπτοlaueΑριθμός αιτημάτων

(3)Ρύθμιση και ώθηση απόδοσης λειτουργίας

[root@localhost ~]# redis-benchmark -t set,lpush -n 100000 -q //Ελέγξτε την απόδοση της υπηρεσίας Redis σε αυτό το μηχάνημα κατά τη διάρκεια των εργασιών ρύθμισης και ώθησης.

Παρατήρηση:

Ø -n: Καθορίστε τον αριθμό των αιτημάτων.

Ø -q: Αναγκαστική έξοδος από το redis. Εμφανίζονται μόνο τιμές ερωτήματος/δευτ.

Ø -t: Εκτελέστε μόνο μια λίστα δοκιμαστικών εντολών διαχωρισμένων με κόμματα.

ΣΕΤ: 121951,22 αιτήματα ανά δευτερόλεπτο

LPUSH: 127226,46 αιτήματα ανά δευτερόλεπτο

4. Ρέντις Κοινές εντολές βάσης δεδομένων

Ø σειρά: Αποθήκευση δεδομένων Η βασική μορφή εντολής είναι ορίστε την τιμή κλειδιού

Ø παίρνω: Λήψη δεδομένων, η βασική μορφή εντολής είναι πάρε κλειδί

1κλειδί Σχετικές εντολές

υπάρχει Redis στη βάση δεδομένων, με κλειδί Οι σχετικές εντολές περιλαμβάνουν κυρίως τις εξής.

1) προσθέστε ζεύγη κλειδιών-τιμών

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

127.0.0.1:6379>σύνολο k1 1

Εντάξει

127.0.0.1:6379>σύνολο k2 2

Εντάξει

127.0.0.1:6379>σύνολο k3 3

Εντάξει

127.0.0.1:6379>σύνολο v1 4

Εντάξει

127.0.0.1:6379>σύνολο v5 5

Εντάξει

(2) Προβολή όλων των κλειδιών στην τρέχουσα βάση δεδομένων

127.0.0.1:6379>ΚΛΕΙΔΙΑ  *  

1) "δάσκαλος"

2) "k1"

3) "k2"

4) "k3"

5) "v1"

6) "v5"

127.0.0.1:6379>σύνολο v22 5

Εντάξει

(3) Δείτε την τρέχουσα βάση δεδομένων με v δεδομένα στην αρχή

127.0.0.1:6379>KEYS v*    

1) "v1"

2) "v5"

3) "v22"

(4) Δείτε την τρέχουσα βάση δεδομένων με v Περιέχει οποιοδήποτε κομμάτι δεδομένων μετά την έναρξη

127.0.0.1:6379>KEYS v?   

1) "v1"

2) "v5"

(5) Δείτε την τρέχουσα βάση δεδομένων με v αρχή v Περιέχει οποιαδήποτε δύο ψηφία δεδομένων μετά την αρχή

127.0.0.1:6379>KEYS v??   

1) "v22"

2:υπάρχει

υπάρχει Η εντολή μπορεί να καθορίσει εάν υπάρχει η τιμή κλειδιού

127.0.0.1:6379>υπάρχει δάσκαλος

(ακέραιος αριθμός) 1

Το αποτέλεσμα είναι 1, που σημαίνει δάσκαλος κλειδί υπάρχει

127.0.0.1:6379>υπάρχει τσάι

(ακέραιος) 0

Το αποτέλεσμα είναι 0, που σημαίνει τσάι κλειδί δεν υπάρχει

3: Δελ

del Η εντολή μπορεί να διαγράψει το καθορισμένο κλειδί

127.0.0.1:6379>κλειδιά *

1) "δάσκαλος"

2) "v1"

3) "v22"

4) "k3"

5) "k1"

6) "k2"

7) "v5"

127.0.0.1:6379> del v5

(ακέραιος αριθμός) 1

127.0.0.1:6379>λήψη v5

(μηδέν)

4:τύπος

χρήση τύπος Η εντολή μπορεί να ληφθεί κλειδί αντίστοιχος αξία τύπος τιμής

127.0.0.1:6379>τύπου k1

σειρά

Παρατήρηση:

Τύποι δεδομένων που υποστηρίζονται από το redis

  • Συμβολοσειρά: Ο απλούστερος τύπος, που είναι συνηθισμένο set and get, που χρησιμοποιείται για την προσωρινή αποθήκευση βασικών τιμών.
  • Κατακερματισμός: Μια δομή παρόμοια με τον χάρτη Γενικά, τα δομημένα δεδομένα, όπως ένα αντικείμενο, μπορούν να αποθηκευτούν προσωρινά σε redis.
  • Λίστα: Η λίστα είναι μια ταξινομημένη λίστα Μπορείτε να χρησιμοποιήσετε τη λίστα για να αποθηκεύσετε ορισμένες δομές δεδομένων τύπου λίστας, όπως λίστες θαυμαστών, λίστες σχολίων άρθρων κ.λπ.
  • Set: Το Set είναι μια μη ταξινομημένη συλλογή που αφαιρεί αυτόματα τα διπλότυπα.
  • Ταξινόμηση σετ: Ταξινομημένο σετ είναι ένα ταξινομημένο σύνολο, το οποίο αφαιρείται από τα αντίγραφα, αλλά μπορεί να ταξινομηθεί Κατά τη σύνταξη, δίνεται μια βαθμολογία και ταξινομείται αυτόματα σύμφωνα με τη βαθμολογία.

5:μετονομάζω

μετονομάζω Η εντολή είναι για ένα υπάρχον κλειδί μετονομάζω

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

127.0.0.1:6379>πλήκτρα v*

1) "v1"

2) "v22"

127.0.0.1:6379>μετονομάστε v22 v2

Εντάξει

127.0.0.1:6379>πλήκτρα v*

1) "v1"

2) "v2"

127.0.0.1:6379>λάβετε v1

"4"

127.0.0.1:6379>λήψη v2

"5"

127.0.0.1:6379>μετονομασία v1 v2

Εντάξει

127.0.0.1:6379>λάβετε v1

(μηδέν)

127.0.0.1:6379>λήψη v2

"4"

6:μετονομασία

μετονομασία Η λειτουργία της εντολής είναι να τροποποιήσει την υπάρχουσα κλειδί Πραγματοποιήστε μια μετονομασία και ελέγξτε αν υπάρχει το νέο όνομα.

χρήσημετονομασία Όταν η εντολή μετονομαστεί, εάν ο στόχος κλειδί Εάν υπάρχει, δεν θα μετονομαστεί.

127.0.0.1:6379>κλειδιά *

1) "δάσκαλος"

2) "k3"

3) "k1"

4) "k2"

5) "v2"

127.0.0.1:6379>πάρε δάσκαλο

"zhanglong"

127.0.0.1:6379>λήψη v2

"4"

127.0.0.1:6379>renamenx v2 δάσκαλος

(ακέραιος) 0

127.0.0.1:6379>κλειδιά *

1) "δάσκαλος"

2) "k3"

3) "k1"

4) "k2"

5) "v2"

127.0.0.1:6379>πάρε δάσκαλο

"zhanglong"

127.0.0.1:6379>λήψη v2

"4

7:dbsize

dbsize Ο σκοπός της εντολής είναι η προβολή της τρέχουσας βάσης δεδομένων κλειδί Αριθμός των.

127.0.0.1:6379> dbsize

(ακέραιος αριθμός) 5

5. Κοινές εντολές για πολλαπλές βάσεις δεδομένων

1: Εναλλαγή μεταξύ πολλαπλών βάσεων δεδομένων

Redis Περιλαμβάνεται από προεπιλογή χωρίς καμία αλλαγή 16 βάση δεδομένων, το όνομα της βάσης δεδομένων είναι ένας αριθμός 0-15 να ονομαστεί κατά σειρά

(1)Μετάβαση στον σειριακό αριθμό 10 βάση δεδομένων

127.0.0.1:6379>επιλέξτε 10

Εντάξει

(2)Μετάβαση στον σειριακό αριθμό 15 βάση δεδομένων

127.0.0.1:6379[10]>επιλέξτε 15

Εντάξει

(3)Μετάβαση στον σειριακό αριθμό 0 βάση δεδομένων

127.0.0.1:6379[15]>επιλέξτε 0

2: Μετακίνηση δεδομένων μεταξύ πολλαπλών βάσεων δεδομένων

Redis Οι πολλαπλές βάσεις δεδομένων είναι σχετικά ανεξάρτητες σε κάποιο βαθμό, για παράδειγμα, στη βάση δεδομένων 0 Αποθηκεύστε παραπάνω k1 δεδομένα, σε άλλα 1-15 Δεν μπορεί να προβληθεί στη βάση δεδομένων.

127.0.0.1:6379>σετ k1 100

Εντάξει

127.0.0.1:6379>πάρε k1

"100"

127.0.0.1:6379>επιλέξτε 1

Εντάξει

127.0.0.1:6379[1]>πάρε k1

(μηδέν)

127.0.0.1:6379[1]>επιλέξτε 0 //Μετάβαση στη βάση δεδομένων προορισμού 0

Εντάξει

127.0.0.1:6379>πάρε k1 //Ελέγξτε εάν υπάρχουν τα δεδομένα στόχου

"100"

127.0.0.1:6379>κίνηση k1 1 //βάση δεδομένων 0 Μέσης k1 Μετακίνηση στη βάση δεδομένων 1 Μέσης

(ακέραιος αριθμός) 1

127.0.0.1:6379>επιλέξτε 1 //Μετάβαση στη βάση δεδομένων προορισμού 1

Εντάξει

127.0.0.1:6379[1]>πάρε k1 //Προβολή μεταφερόμενων δεδομένων

"100"

127.0.0.1:6379[1]> επιλέξτε 0

Εντάξει

127.0.0.1:6379> πάρε k1 //στη βάση δεδομένων 0 Δεν είναι δυνατή η προβολή σε k1 αξία

(μηδέν)

3: Διαγραφή δεδομένων στη βάση δεδομένων

Για να διαγράψετε τα τρέχοντα δεδομένα βάσης δεδομένων, χρησιμοποιήστε το FLUSHDB

Εφαρμογή εντολών, εκκαθάριση όλων των δεδομένων βάσης δεδομένων, χρήση FLUSHALL Εφαρμογή εντολών

6. Redis επιμονή

Redis Όλα τα δεδομένα αποθηκεύονται στη μνήμη και στη συνέχεια αποθηκεύονται ασύγχρονα στο δίσκο από καιρό σε καιρό.(Αυτό ονομάζεταιΗμι-επίμονη λειτουργία”)Μπορείτε επίσης να γράψετε κάθε αλλαγή δεδομένων σε a προσθήκη μόνο αρχείου(aof)σε(Αυτό ονομάζεταιΛειτουργία πλήρους επιμονής”)

Εφόσον τα δεδομένα Redis αποθηκεύονται στη μνήμη, εάν δεν έχει ρυθμιστεί η επιμονή,Redis Μετά την επανεκκίνηση, όλα τα δεδομένα χάνονται.Επομένως, είναι απαραίτητο να ενεργοποιηθείRedis Η συνάρτηση επιμονής αποθηκεύει δεδομένα στο δίσκο Πότε Redis Μετά από μια επανεκκίνηση, τα δεδομένα μπορούν να ανακτηθούν από το δίσκο.Redis Δύο μέθοδοι παρέχονται για επιμονή, η μία είναι RDBΒάση Δεδομένων Redis Επιμονή (η αρχή είναι να ReidsΧρονισμός καταγραφής βάσης δεδομένων στη μνήμη εγκαταλείπω στον δίσκο RDB επιμονή), το άλλο είναι ΑΟΦπροσάρτηση μόνο αρχείοΕπιμονή (η αρχή είναι να Reids Το αρχείο καταγραφής λειτουργίας εγγράφεται στο αρχείο με συνημμένο τρόπο).

1:RDB και ΑΟΦ Η διαφορά

(1) Τι είναι το RDB;

Η προεπιλεγμένη μέθοδος

Η επιμονή RDB είναι η διαδικασία δημιουργίας στιγμιότυπου των δεδομένων της τρέχουσας διεργασίας και αποθήκευσης στον σκληρό δίσκο Η διαδικασία ενεργοποίησης της επιμονής RDB χωρίζεται σε χειροκίνητη ενεργοποίηση και αυτόματη ενεργοποίηση.

Μηχανισμός ενεργοποίησης: Η χειροκίνητη ενεργοποίηση αντιστοιχεί στις εντολές αποθήκευσης και bgsave αντίστοιχα.

εντολή αποθήκευσης: μπλοκάρει τον τρέχοντα διακομιστή Redis μέχρι να ολοκληρωθεί η διαδικασία RDB Για περιπτώσεις με μεγάλη ποσότητα μνήμης, θα προκαλέσει φραγμό χρόνου. Δεν συνιστάται για χρήση σε διαδικτυακά περιβάλλοντα.

Εντολή bgsave: Η διεργασία Redis εκτελεί τη λειτουργία fork (συνάρτηση που χρησιμοποιείται για τη δημιουργία μιας διεργασίας) για τη δημιουργία μιας θυγατρικής διαδικασίας Η διαδικασία επιμονής RDB είναι υπεύθυνη για τη θυγατρική διαδικασία και τελειώνει αυτόματα μετά την ολοκλήρωση. Το μπλοκάρισμα συμβαίνει μόνο κατά τη φάση της περόνης.

(2) Πλεονεκτήματα και μειονεκτήματα του RDB:

Πλεονεκτήματα του RDB:

Το RDB είναι ένα συμπαγές, συμπιεσμένο δυαδικό αρχείο που αντιπροσωπεύει ένα στιγμιότυπο δεδομένων Redis σε μια συγκεκριμένη χρονική στιγμή. Είναι πολύ κατάλληλο για backup, full copy και άλλα σενάρια. Για παράδειγμα, πραγματοποιήστε δημιουργία αντιγράφων ασφαλείας bgsave κάθε 6 ώρες και αντιγράψτε το αρχείο RDB στο απομακρυσμένο μηχάνημα ή στο σύστημα αρχείων για ανάκτηση από καταστροφή.

Το Redis φορτώνει το RDB και ανακτά δεδομένα πολύ πιο γρήγορα από τη μέθοδο AOF.

Μειονεκτήματα του RDB:

Τα δεδομένα σε λειτουργία RDB δεν μπορούν να επιτύχουν εμμονή σε πραγματικό χρόνο/επιμονή δεύτερου επιπέδου. Επειδή κάθε φορά που εκτελείται το bgsave, εκτελείται μια λειτουργία διακλάδωσης για τη δημιουργία μιας θυγατρικής διαδικασίας, η οποία είναι μια βαριά λειτουργία και το κόστος της συχνής εκτέλεσης είναι πολύ υψηλό.

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

2. Τι είναι ο ΑΟΦ;

Εμμονή AOF (προσάρτηση μόνο αρχείου): καταγράψτε κάθε εντολή εγγραφής σε ένα ανεξάρτητο αρχείο καταγραφής και, στη συνέχεια, εκτελέστε ξανά την εντολή στο αρχείο AOF για επαναφορά δεδομένων κατά την επανεκκίνηση. Η κύρια λειτουργία του AOF είναι να λύσει το πρόβλημα της επιμονής δεδομένων σε πραγματικό χρόνο.

Κριτήρια επιλογής μεταξύ των δύο:

Θυσιάστε κάποια απόδοση σε αντάλλαγμα για υψηλότερη συνέπεια της κρυφής μνήμης (ΑΟΦ),

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

Παρατήρηση:

Εάν πρέπει να φορτωθεί ένα μόνιμο αρχείο μετά την επανεκκίνηση της επανεκκίνησης, θα επιλεγούν τα αρχεία AOF.

Εάν πρώτα ενεργοποιηθεί το RDB και μετά ενεργοποιηθεί το AOF και το RDB παραμείνει πρώτα, τα περιεχόμενα στο αρχείο RDB θα αντικατασταθούν από τον AOF.

3:Redis Διαμόρφωση εμμονής

(1)RDB Διαμόρφωση εμμονής

[root@localhost ~]# vim /etc/redis/6379.conf

Ανοίξτε το 6379.conf Μετά το αρχείο, κάντε αναζήτηση αποθηκεύσετε, μπορείτε να δείτε τις πληροφορίες διαμόρφωσης όπως φαίνεται παρακάτω.

  • Ø αποθήκευση 900 1: Μετά από 900 δευτερόλεπτα (15 λεπτά), εάν αλλάξει τουλάχιστον 1 πλήκτρο, απορρίψτε το στιγμιότυπο μνήμης.
  • Ø αποθήκευση 300 10: Μετά από 300 δευτερόλεπτα (5 λεπτά), εάν έχουν αλλάξει τουλάχιστον 10 πλήκτρα, απορρίψτε το στιγμιότυπο μνήμης.
  • Ø αποθήκευση 60 10000: Μετά από 60 δευτερόλεπτα (1 λεπτό), εάν έχουν αλλάξει τουλάχιστον 10000 πλήκτρα, απορρίψτε το στιγμιότυπο μνήμης.
  • dbfilename dump.rdb: Όνομα αρχείου RDB ##254 γραμμή
  • dir /var/lib/redis/6379: Γραμμή διαδρομής αρχείου RDB ##264
  • rdbcompression ναι: Εάν θα συμπιεστεί η γραμμή ##242

(2) ΑΟΦ Διαμόρφωση εμμονής

υπάρχει Redis Υπάρχουν τρεις μέθοδοι συγχρονισμού στο αρχείο διαμόρφωσης, είναι:

  • appendonly ναι: Ενεργοποίηση AOF persistence (η προεπιλογή είναι όχι) γραμμή ##673
  • appendfilename "appendonly.aof ": Όνομα αρχείου AOF ##677 γραμμή
  • # appendfsync πάντα
  • appendfsync κάθε δευτερόλεπτο
  • # appendfsync αρ

πάντα: σύγχρονη επιμονή, κάθε φορά που αλλάζουν δεδομένα, θα γράφονται αμέσως στο δίσκο

everysec: Συνιστάται από προεπιλογή, εγγραφή ασύγχρονης κάθε δευτερόλεπτο (προεπιλεγμένη τιμή)

όχι: Δεν υπάρχει συγχρονισμός, αφήνοντας το λειτουργικό σύστημα να αποφασίσει πώς θα γίνει ο συγχρονισμός

  • aof-load-truncated ναι ##769行

Αγνοήστε την τελευταία δυνητικά προβληματική οδηγία

[root@localhost ~]#/etc/init.d/redis_6379 επανεκκίνηση

(2) Αναγραφή ΑΟΦ

προκειμένου να λυθεί ΑΟΦ Εάν το μέγεθος του αρχείου συνεχίσει να αυξάνεται, οι χρήστες μπορούν να αναφέρουν Redis στείλετε BGREGREAOFΣειρά.BGREGREAOF Η εντολή θα αφαιρεθεί μέσω ΑΟΦ περιττές εντολές στο αρχείο για παράκαμψη (ξαναγράφωΑΟΦαρχείο, φτιάχνω ΑΟΦ Διατηρήστε το μέγεθος του αρχείου όσο το δυνατόν μικρότερο.

127.0.0.1:6379&gt; bgrewriteaof

Ξεκίνησε η επανεγγραφή του αρχείου μόνο για την προσθήκη στο παρασκήνιο

# Όταν το αρχείο καταγραφής είναι BGREWRITEAOF,ανno-appendfsync-on-reriteΟρίστε σε ναι, πράγμα που σημαίνει ότι οι νέες λειτουργίες εγγραφής δεν θα συγχρονίζονται με το fsync, αλλά θα αποθηκευτούν μόνο προσωρινά στο buffer. , για να αποφύγετε διενέξεις λειτουργίας IO του δίσκου, περιμένετε μέχρι να ολοκληρωθεί η επανεγγραφή πριν γράψετε. Η προεπιλογή στο Redis είναι όχι

no-appendfsync-on-rerite no

# Όταν το τρέχον μέγεθος αρχείου AOF είναι διπλάσιο από το μέγεθος του αρχείου AOF κατά την τελευταία επανεγγραφή του αρχείου καταγραφής, εμφανίζεται η λειτουργία BGREWRITEAOF.

auto-aof-rewrite-ποσοστό 100

Παρατήρηση:

100 αναφέρεται σεΟ λόγος ανάπτυξης αρχείου AOF αναφέρεται στον λόγο ανάπτυξης του τρέχοντος αρχείου AOF σε σύγκριση με την τελευταία επανεγγραφή.Το 100 είναι διπλάσιο

#Η ελάχιστη τιμή του τρέχοντος αρχείου AOF για την εκτέλεση της εντολής BGREWRITEAOF για την αποφυγή συχνών BGREWRITEAOF λόγω του μικρού μεγέθους του αρχείου κατά την πρώτη εκκίνηση του Reid.

auto-aof-rewrite-min-size 64mb

7. Διαχείριση απόδοσης

1: Προβολή πληροφοριών μνήμης

192.168.9.236:7001> μνήμη πληροφοριών

used_memory:1210776 #Το μέγεθος της χρησιμοποιούμενης μνήμης,σε byte
used_memory_human:1.15M # Οθόνη με μονάδα,στο Μ
used_memory_rss:7802880 # Πόση μνήμη καταλαμβάνει το redis από την πλευρά του λειτουργικού συστήματος;
used_memory_rss_human:7.44M # Οθόνη με μονάδα
maxmemory:1073741824 # Μέγιστο μέγεθος μνήμης
maxmemory_human:1.00G # Οθόνη με μονάδα

2: Στρατηγική ανακύκλωσης

maxmemory-policy: Στρατηγική ανακύκλωσης

Ø πτητικό-lru: επιτρέπει Redis Επιλέξτε το λιγότερο πρόσφατα χρησιμοποιημένο από ολόκληρο το σύνολο δεδομένων κλειδί Διαγράφω

Ø πτητικό-ttlΑφαιρέστε ανάλογα με το χρόνο λήξης του κλειδιού 

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

Ø allkeys-lru:χρήση LRU Οι αλγόριθμοι εξαλείφουν δεδομένα από όλα τα σύνολα δεδομένων.

Ø όλα τα πλήκτρα-τυχαία: Τυχαία επιλογή δεδομένων για εξάλειψη από τη συλλογή δεδομένων.

Ø μηδενισμός: Απενεργοποίηση διαγραφής δεδομένων (προεπιλεγμένη τιμή)

Παρατήρηση:

Ρυθμίστε το χρόνο λήξης του κλειδιού

λήγει v1 10

Το v1 έχει χρόνο λήξης 10 δευτερολέπτων

Παρατήρηση:

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

8. Ορίστε κωδικό πρόσβασης για redis

1: Μέθοδος ρύθμισης

Μέθοδος 1. Ορίστε τον κωδικό πρόσβασης μέσω του αρχείου διαμόρφωσης redis.conf

Βρείτε τη λέξη-κλειδί requestpass, ακολουθούμενη από τον κωδικό πρόσβασης, σχολιάζεται από προεπιλογή, δηλαδή, δεν απαιτείται κωδικός πρόσβασης από προεπιλογή, ως εξής:

Ανοίξτε το σχόλιο, ορίστε το ως δικό σας κωδικό πρόσβασης και κάντε επανεκκίνηση

Μέθοδος 2. Ορίστε κωδικό πρόσβασης ονομάζοντας

Χρησιμοποιήστε το redis-cli για να συνδεθείτε με το redis και εκτελέστε την ακόλουθη εντολή

το σύνολο ρυθμίσεων απαιτεί το 123456

Μετά την ολοκλήρωση της εκτέλεσης, δεν υπάρχει ανάγκη επανεκκίνησης Θα χρειαστεί να εισαγάγετε τον κωδικό πρόσβασής σας όταν βγείτε από τον πελάτη και συνδεθείτε ξανά.

2.Μέθοδος σύνδεσης

1. Εισαγάγετε τον κωδικό πρόσβασής σας κατά τη σύνδεση

[root@localhost bin]# ./redis-cli -a 123456

2. Συνδεθείτε πρώτα και μετά πληκτρολογήστε τον κωδικό πρόσβασης

[root@localhost bin]# ./redis-cli127.0.0.1:6379&gt; auth 123456

3: Μέθοδος κλεισίματος

[root@localhost bin]# ./redis-cli -a 123456 shutdown

4: Διαφορά

1) Ο κωδικός πρόσβασης που ορίστηκε με την τροποποίηση του αρχείου διαμόρφωσης θα τεθεί σε ισχύ μόνιμα ο κωδικός που ορίστηκε με τη χρήση της εντολής θα τεθεί σε ισχύ προσωρινά και θα καταστεί άκυρος μετά την επανεκκίνηση.

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

3) Η προτεραιότητα της εντολής είναι υψηλότερη από την προτεραιότητα του αρχείου διαμόρφωσης