τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Συναλλαγές σε επίπεδο βάσης δεδομένων
Σε επίπεδο βάσης δεδομένων, μια συναλλαγή είναι ένα σύνολο πράξεων που είτε εκτελούνται όλες με επιτυχία είτε καμία από αυτές δεν εκτελείται.
Τέσσερα κύρια χαρακτηριστικά των συναλλαγών βάσης δεδομένων
Συναλλαγή Redis
Μια συναλλαγή Redis είναι ένα σύνολο εντολών Όλες οι εντολές σε μια συναλλαγή θα εκτελεστούν σειριακά και μια σειρά από εντολές θα εκτελεστούν με έναν εφάπαξ, διαδοχικό και αποκλειστικό τρόπο.
MULTI
Ξεκινήστε μια συναλλαγή.EXEC
Η εντολή ενεργοποιεί τη συναλλαγή.
Multi, Exec, απόρριψη
εισαγωγή συναλλαγής απόMulti
Όταν ξεκινήσει η εντολή, οι εισαγόμενες εντολές θα ωθηθούν στην ουρά προσωρινής αποθήκευσης εντολών μία προς μία και δεν θα εκτελεστούν έως ότουExec
Στη συνέχεια, το Redis θα εκτελέσει τις εντολές στην προηγούμενη ουρά buffer εντολών με τη σειρά.Κατά τη διαδικασία σχηματισμού της ομάδας, μπορείς να περάσειςdiscard
Έλα να παρατήσεις την ομάδα.
παράδειγμα
127.0.0.1:6379> set t1 1
OK
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379(TX)> set id 12
QUEUED
127.0.0.1:6379(TX)> get id
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> get t1
QUEUED
127.0.0.1:6379(TX)> EXEC
1) OK
2) "12"
3) (integer) 2
4) (integer) 3
5) "3"
εγκατάλειψη συναλλαγής
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379(TX)> set name z3
QUEUED
127.0.0.1:6379(TX)> set age 29
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> DISCARD
OK
Καθισμένοι όλοι μαζί
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379(TX)> set name z3
QUEUED
127.0.0.1:6379(TX)> get name
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> get t1
QUEUED
127.0.0.1:6379(TX)> set email
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379(TX)> exec
(error) EXECABORT Transaction discarded because of previous errors.
Ειδοποίηση:
Το σύνολο εντολών περιέχει λανθασμένες οδηγίες (σημειώστε ότι είναι συντακτικά σφάλματα Είναι όλα συνδεδεμένα και όλα αποτυγχάνουν).
Κάθε αδικία έχει τον ιδιοκτήτη της, κάθε χρέος έχει τον ιδιοκτήτη του
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379(TX)> set age 11
QUEUED
127.0.0.1:6379(TX)> incr t1
QUEUED
127.0.0.1:6379(TX)> set email [email protected]
QUEUED
127.0.0.1:6379(TX)> incr email
QUEUED
127.0.0.1:6379(TX)> get age
QUEUED
127.0.0.1:6379(TX)> exec
1) OK
2) (integer) 5
3) OK
4) (error) ERR value is not an integer or out of range
5) "11"
Ειδοποίηση:
Για σφάλματα χρόνου εκτέλεσης, δηλαδή μη γραμματικά λάθη, θα εκτελεστούν σωστές εντολές και οι εσφαλμένες εντολές θα επιστρέψουν ένα σφάλμα.
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
Μεταξύ των υφιστάμενων επιχειρήσεων, το 80% των εταιρειών χρησιμοποιούν ως επί το πλείστον αυτόνομες υπηρεσίες Redis Σε πραγματικά σενάρια, το Redis σε έναν μόνο κόμβο είναι επιρρεπές σε κινδύνους.
αντιμετωπίζει προβλήματα:
- δυσλειτουργία του μηχανήματος. Αναπτύσσουμε έναν διακομιστή Redis Όταν παρουσιάζεται μια αποτυχία του μηχανήματος, πρέπει να μεταφερθούμε σε άλλο διακομιστή και να διασφαλίσουμε ότι τα δεδομένα είναι συγχρονισμένα.
- Συμφόρηση χωρητικότητας. Όταν πρέπει να επεκτείνουμε τη μνήμη Redis, από μνήμη 16G σε 64G, σίγουρα ένα μόνο μηχάνημα δεν θα μπορεί να την ικανοποιήσει. Φυσικά, μπορείτε να αγοράσετε ένα νέο μηχάνημα 128G.
Λύση
Για να επιτύχουμε μεγαλύτερη χωρητικότητα αποθήκευσης της κατανεμημένης βάσης δεδομένων και να αντέξουμε την υψηλή ταυτόχρονη πρόσβαση, θα αποθηκεύσουμε τα δεδομένα της αρχικής κεντρικής βάσης δεδομένων σε πολλούς άλλους κόμβους δικτύου.
Ειδοποίηση:
Προκειμένου να λύσει αυτό το πρόβλημα ενός κόμβου, το Redis θα αναπτύξει επίσης πολλαπλά αντίγραφα δεδομένων σε άλλους κόμβους για αναπαραγωγή για να επιτύχει υψηλή διαθεσιμότητα Redis και πλεονάζοντα αντίγραφα ασφαλείας δεδομένων για να εξασφαλίσει υψηλή διαθεσιμότητα δεδομένων και υπηρεσιών.
Τι είναι η αναπαραγωγή master-slave
Η αναπαραγωγή Master-slave αναφέρεται στην αντιγραφή δεδομένων από έναν διακομιστή Redis σε άλλους διακομιστές Redis. Ο πρώτος ονομάζεται κύριος κόμβος και ο δεύτερος εξαρτημένος κόμβος Η αναπαραγωγή δεδομένων είναι μονόδρομη και μπορεί να είναι μόνο από τον κύριο κόμβο στον υποτελή κόμβο.
Ο ρόλος του master-slave replication
Γράψτε το αρχείο διαμόρφωσης
Δημιουργία νέου redis6379.conf
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb
Δημιουργήστε νέο redis6380.conf
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb
Δημιουργία νέου redis6381.conf
include /usr/local/redis-7.2.4/redis.config
pidfile /var/run/redis_6381.pid
port 6381
dbfilename dump6381.rdb
Ξεκινήστε τρεις διακομιστές redis
./redis-server ../redis6379.conf
./redis-server ../redis6380.conf
./redis-server ../redis6381.conf
Προβολή διαδικασιών συστήματος
[root@localhost src]# ps -ef |grep redis
root 40737 1 0 22:05 ? 00:00:00 ./redis-server *:6379
root 40743 1 0 22:05 ? 00:00:00 ./redis-server *:6380
root 40750 1 0 22:05 ? 00:00:00 ./redis-server *:6381
root 40758 40631 0 22:05 pts/0 00:00:00 grep --color=auto redis
Ελέγξτε την κατάσταση λειτουργίας τριών κεντρικών υπολογιστών
#打印主从复制的相关信息
./redis-cli -p 6379
./redis-cli -p 6380
./redis-cli -p 6381
127.0.0.1:6379> info replication
127.0.0.1:6380> info replication
127.0.0.1:6381> info replication
Εξοπλισμένο με βάση δεδομένων slave αλλά όχι με κύρια βάση δεδομένων
Μορφή σύνταξης:
slaveof <ip> <port>
Παράδειγμα:
Εκτελέστηκε στις 6380 και 6381.
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
Γράψτε στον κεντρικό υπολογιστή και διαβάστε δεδομένα στο slave
set k1 v1
Η αναπαραγωγή Master-slave μπορεί να χωριστεί σε 3 στάδια
Η διαδικασία αντιγραφής χωρίζεται χονδρικά σε 6 διαδικασίες
info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
4. Στείλτε την εντολή ping
Μετά την επιτυχή δημιουργία της σύνδεσης, ο υποτελής κόμβος στέλνει ένα αίτημα ping για την πρώτη επικοινωνία.
αποτέλεσμα:
- Εντοπίστε εάν η υποδοχή δικτύου μεταξύ master και slave είναι διαθέσιμη.
- Εντοπίστε εάν ο κύριος κόμβος μπορεί αυτήν τη στιγμή να δέχεται εντολές
ASD.
Εάν η παράμετρος Requirepass έχει οριστεί στον κύριο κόμβο, απαιτείται επαλήθευση κωδικού πρόσβασης τερματίζεται και ο υποτελής κόμβος θα ξεκινήσει εκ νέου τη διαδικασία αναπαραγωγής.
Συγχρονισμός συνόλων δεδομένων.
Μετά την κανονική επικοινωνία της σύνδεσης αναπαραγωγής master-slave, όταν δημιουργηθεί η αναπαραγωγή για πρώτη φορά, ο κύριος κόμβος θα στείλει όλα τα δεδομένα που διατηρεί στον υποτελή κόμβο Αυτό το μέρος της λειτουργίας είναι το μεγαλύτερο βήμα.
Στρατηγική συγχρονισμού Master-Slave
Όταν το master και το slave είναι μόλις συνδεδεμένα, πραγματοποιείται πλήρης συγχρονισμός μετά την ολοκλήρωση του πλήρους συγχρονισμού, εκτελείται ο σταδιακός συγχρονισμός. Φυσικά, εάν είναι απαραίτητο, ο slave μπορεί να ξεκινήσει τον πλήρη συγχρονισμό ανά πάσα στιγμή. Η στρατηγική redis είναι ότι, ανεξάρτητα από το τι, θα επιχειρηθεί πρώτα ο σταδιακός συγχρονισμός, και εάν δεν είναι επιτυχής, η υποτελής μηχανή θα πρέπει να εκτελέσει πλήρη συγχρονισμό.
Για παράδειγμα
αποθηκεύστε μια κρυφή μνήμη
set name jjy
Η εντολή εγγραφής είναι
$3 r n
set r n
$4 r n
name r n
$5 r n
jjy r n
Αντισταθμίζεται | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 |
---|---|---|---|---|---|---|---|---|---|
Τιμή byte | $ | 3 | r | n | $ | 4 | n | ένα | Μ |
7. Η εντολή αντιγράφεται συνεχώς.
Όταν ο κύριος κόμβος συγχρονίζει τα τρέχοντα δεδομένα με τον εξαρτημένο κόμβο, η διαδικασία δημιουργίας αναπαραγωγής ολοκληρώνεται. Στη συνέχεια, ο κύριος κόμβος θα στέλνει συνεχώς εντολές εγγραφής στους υποτελείς κόμβους για να διασφαλίσει τη συνέπεια δεδομένων κύριου-υτελούς.
Μειονεκτήματα του Redis master-slave replication
Όταν ο κεντρικός υπολογιστής πέσει κάτω, πρέπει να λύσουμε χειροκίνητα τον διακόπτη.
Ζητήματα έκθεσης:
Μόλις ο κύριος κόμβος πέσει και η υπηρεσία εγγραφής δεν μπορεί να χρησιμοποιηθεί, πρέπει να κάνετε μη αυτόματη εναλλαγή, να επιλέξετε ξανά τον κύριο κόμβο και να ορίσετε με μη αυτόματο τρόπο τη σχέση master-slave.
Τεχνολογία μεταγωγής master-slave
Όταν ο κύριος διακομιστής σβήσει, ένας υποτελής διακομιστής πρέπει να μεταφερθεί χειροκίνητα στον κύριο διακομιστή, κάτι που απαιτεί χειροκίνητη παρέμβαση, είναι χρονοβόρο και εντατικό και θα προκαλέσει επίσης τη μη διαθεσιμότητα της υπηρεσίας για κάποιο χρονικό διάστημα.Αυτή δεν είναι μια προτεινόμενη προσέγγιση, πιο συχνά δίνουμε προτεραιότηταΛειτουργία φρουρού。
Επισκόπηση Sentinel
Η λειτουργία Sentinel είναι μια ειδική λειτουργία. Η αρχή είναι ότι ο φρουρός παρακολουθεί πολλαπλές εκτελούμενες παρουσίες Redis στέλνοντας εντολές και περιμένοντας να απαντήσει ο διακομιστής Redis.
Ρόλος φρουρού
Δημιουργήστε ένα νέο αρχείο sentinel-26379.conf
#端口
port 26379
#守护进程运行
daemonize yes
#日志文件
logfile "26379.log"
sentinel monitor mymaster localhost 6379 2
παράμετρος:
Οθόνη φρουρού mymaster 192.168.92.128 6379 2 Το νόημα της διαμόρφωσης είναι: ο κόμβος φρουρός παρακολουθεί τον κύριο κόμβο 192.168.92.128:6379 Το όνομα του κύριου κόμβου είναι mymaster ο κύριος κόμβος: απαιτούνται τουλάχιστον 2 Μόνο όταν συμφωνούν δύο κόμβοι φρουρού, μπορεί να προσδιοριστεί η αποτυχία του κύριου κόμβου και να πραγματοποιηθεί failover.
Δημιουργήστε ένα νέο αρχείο sentinel-26380.conf
#端口
port 26380
#守护进程运行
daemonize yes
#日志文件
logfile "26380.log"
sentinel monitor mymaster localhost 6379 2
Δημιουργήστε ένα νέο αρχείο sentinel-26381.conf
#端口
port 26381
#守护进程运行
daemonize yes
#日志文件
logfile "26381.log"
sentinel monitor mymaster localhost 6379 2
Εκκίνηση του κόμβου φρουρού
redis-sentinel sentinel-26379.conf
Προβολή κατάστασης κόμβου φρουρού
[root@localhost src]# ./redis-cli -p 26379
127.0.0.1:26379>
127.0.0.1:26379>
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.66.100:6379,slaves=2,sentinels=3
φάση παρακολούθησης
Ειδοποίηση:
- φρουρός (sentinel 1)----->Εκκινήστε πληροφορίες για τον κύριο (κύριο) και τον δούλο (slave) και λάβετε τις πλήρεις πληροφορίες.
- φρουρός (sentinel 2)----->Εκκινήστε πληροφορίες στον κύριο (κύριο), θα γνωρίζετε τις πληροφορίες του υπάρχοντος φρουρού (sentinel 1) και θα συνδεθείτε στο slave (slave).
- φρουρός (sentinel 2)----->Ξεκινήστε μια εγγραφή στο sentinel (sentinel 1).
Στάδιο ειδοποίησης
Ο Sentinel στέλνει συνεχώς ειδοποιήσεις στον κύριο και τον slave για συλλογή πληροφοριών.
φάση αποτυχίας
Στη φάση ειδοποίησης, εάν η ειδοποίηση που αποστέλλεται από τον φρουρό δεν λάβει απάντηση από τον κύριο, θα επισημάνει τον κύριο ως SRI_S_DOWN και θα στείλει την κατάσταση του πλοιάρχου σε κάθε φρουρό, όταν οι άλλοι φρουροί μάθουν ότι ο κύριος έχει πεθάνει Δεν το πιστεύω ότι θα το ελέγξω και θα το στείλω. Τα αποτελέσματα κοινοποιούνται σε κάθε φρουρό.
Εδώ έρχεται το ερώτημα:
Αυτή τη στιγμή, ο κύριος πρέπει να αντικατασταθεί.
Πώς να ψηφίσετε
Τρόπος:
Όποιος φρουρός λάβω πρώτος την προκήρυξη εκλογών θα την ψηφίσει.
Εξάλειψη ορισμένων περιπτώσεων:
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
Επιδεικνύει τις δυνατότητες παρακολούθησης και αυτόματης ανακατεύθυνσης του Sentinel όταν αποτυγχάνει ο κύριος κόμβος.
Επίδειξη αποτυχίας
Χρησιμοποιήστε την εντολή kill για να σκοτώσετε τον κύριο κόμβο
ps aux |grep redis
kill -9 pid
Προβολή πληροφοριών κόμβου φρουρού
Εάν χρησιμοποιήσετε αμέσως την εντολή info Sentinel στον κόμβο φρουρού για να την προβάλετε.
[root@localhost src]# ./redis-cli -p 26379
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6381,slaves=5,sentinels=3
Ειδοποίηση:
Θα διαπιστώσετε ότι ο κύριος κόμβος δεν έχει αλλάξει, επειδή θα χρειαστεί λίγος χρόνος για να εντοπίσει ο φρουρός την αποτυχία του κύριου κόμβου και να τον μεταφέρει.
Επανεκκινήστε τον κόμβο 6379
[root@localhost src]# ./redis-cli info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:down
Τα αρχεία διαμόρφωσης θα ξαναγραφούν
Κατά τη φάση της ανακατεύθυνσης, τα αρχεία ρύθμισης παραμέτρων των κόμβων φρουρού και master-slave θα ξαναγραφούν.
include /usr/local/redis/redis.conf
pidfile "/var/run/redis_6379.pid"
port 6379
dbfilename "dump6379.rdb"
# Generated by CONFIG REWRITE
daemonize yes
protected-mode no
appendonly yes
slowlog-max-len 1200
slowlog-log-slower-than 1000
save 5 1
user default on nopass ~* &* +@all
dir "/usr/local/redis"
replicaof 127.0.0.1 6381
Συμπερασματικά
Το Redis έχει τρεις λειτουργίες συμπλέγματος
Μειονεκτήματα του Sentry Mode
έλλειψη:
Επισκόπηση λειτουργίας συμπλέγματος
Το σύμπλεγμα Redis είναι ένα κατανεμημένο σύμπλεγμα υπηρεσιών που αποτελείται από πολλαπλές ομάδες κόμβων κύριου-υποτελούντα. Διαθέτει δυνατότητες αναπαραγωγής, υψηλής διαθεσιμότητας και διαμοιρασμού.
Πλεονεκτήματα του συμπλέγματος Redis
Η κατασκευή συμπλέγματος Redis απαιτεί τουλάχιστον 3 κύριους κόμβους εδώ, το καθένα με έναν υποτελή κόμβο, για συνολικά 6 κόμβους Redis.
Κατασκευή συμπλέγματος
Δημιουργήστε 6 διαφορετικούς κόμβους redis με αριθμούς θύρας 6379, 6380, 6381, 6382, 6383 και 6384 αντίστοιχα.
Ειδοποίηση: Τα αρχεία dump.rdb και appendonly.aof πρέπει να διαγραφούν πριν από την αντιγραφή.
1. Δημιουργήστε ένα νέο αρχείο διαμόρφωσης
Δημιουργήστε αρχεία redis6379.config, redis6380.config, redis6381.config, redis6382.config, redis6383.config, redis6384.config Τροποποιήστε τον αριθμό θύρας στο αρχείο διαμόρφωσης, ώστε να αντιστοιχεί στον αριθμό θύρας του αρχείου.
daemonize yes
dir /usr/local/redis-7.2.4/redis-cluster/6382/
bind 192.168.47.100
port 6382
dbfilename dump6382.rdb
cluster-enabled yes
cluster-config-file nodes-6382.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
παράμετρος:
- cluster-config-file: Το αρχείο διαμόρφωσης εμμονής συμπλέγματος, το οποίο περιέχει την κατάσταση άλλων κόμβων, μεταβλητές persistence, κ.λπ., θα δημιουργηθεί αυτόματα στον κατάλογο dir που διαμορφώθηκε παραπάνω. Κάθε κόμβος θα διατηρήσει ένα αρχείο διαμόρφωσης συμπλέγματος κατά τη λειτουργία κάθε φορά που αλλάζουν οι πληροφορίες του συμπλέγματος (όπως η προσθήκη ή η αφαίρεση κόμβων), όλοι οι κόμβοι του συμπλέγματος θα ενημερώνουν τις πιο πρόσφατες πληροφορίες στο αρχείο διαμόρφωσης, θα το ξαναδιαβάζουν το αρχείο διαμόρφωσης για να λάβετε πληροφορίες συμπλέγματος και μπορείτε εύκολα να επανέλθετε στο σύμπλεγμα. Το αρχείο διαμόρφωσης συμπλέγματος διατηρείται από τη Redis και δεν απαιτεί μη αυτόματη τροποποίηση.
- Cluster-enabled: ενεργοποίηση του συμπλέγματος
ΔΗΜΙΟΥΡΓΩ φακελο
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6379/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6380/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6381/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6382/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6383/
mkdir -p /usr/local/redis-7.2.4/redis-cluster/6384/
Ξεκινήστε έξι κόμβους
[root@bogon src]# ./redis-server ../redis6379.config
[root@bogon src]# ./redis-server ../redis6380.config
[root@bogon src]# ./redis-server ../redis6381.config
[root@bogon src]# ./redis-server ../redis6382.config
[root@bogon src]# ./redis-server ../redis6383.config
[root@bogon src]# ./redis-server ../redis6384.config
Ελέγξτε εάν κάθε κόμβος ξεκινά με επιτυχία
[root@bogon src]# ps -ef | grep redis
root 3889 1 0 09:56 ? 00:00:03 ./redis-server 0.0.0.0:6379 [cluster]
root 3895 1 0 09:56 ? 00:00:03 ./redis-server 0.0.0.0:6380 [cluster]
root 3901 1 0 09:57 ? 00:00:03 ./redis-server 0.0.0.0:6381 [cluster]
root 3907 1 0 09:57 ? 00:00:02 ./redis-server *:6382 [cluster]
root 3913 1 0 09:57 ? 00:00:02 ./redis-server 0.0.0.0:6383 [cluster]
root 3919 1 0 09:57 ? 00:00:02 ./redis-server 0.0.0.0:6384 [cluster]
root 4247 2418 0 10:22 pts/0 00:00:00 grep --color=auto redis
Διαμόρφωση του συμπλέγματος
Μορφή εντολών: --cluster-replicas 1 σημαίνει δημιουργία ενός slave node για κάθε master
Ειδοποίηση: Η IP εδώ είναι η πραγματική IP του μηχανήματος όπου βρίσκεται κάθε κόμβος.
[root@localhost src]# ./redis-cli --cluster create 192.168.47.100:6379 192.168.47.100:6380 192.168.47.100:6381 192.168.47.100:6382 192.168.47.100:6383 192.168.47.100:6384 --cluster-replicas 1
Επαλήθευση συμπλέγματος
Συνδεθείτε σε οποιονδήποτε πελάτη
./redis-cli -h 192.168.47.100 -p 6379 -c
παράμετρος:
‐h: διεύθυνση κεντρικού υπολογιστή
-p: αριθμός θύρας
‐c: υποδεικνύει λειτουργία συμπλέγματος
Τεστ γραφής δεδομένων
[root@bogon src]# ./redis-cli -p 6379 -c
127.0.0.1:6379> set name zhangsan
-> Redirected to slot [5798] located at 192.168.47.100:6380
OK
192.168.47.100:6380> get name
"zhangsan"
192.168.47.100:6380>
[root@bogon src]# ./redis-cli -p 6383 -c
127.0.0.1:6383> get name
-> Redirected to slot [5798] located at 192.168.47.100:6380
"zhangsan"
192.168.47.100:6380>
[root@bogon src]# ./redis-cli -p 6383 -c
127.0.0.1:6383> readonly
OK
127.0.0.1:6383> get name
"zhangsan"
127.0.0.1:6383>
Συστάδα Redis Όλα τα δεδομένα χωρίζονται σε 16384 υποδοχές (slots) και κάθε κόμβος είναι υπεύθυνος για ένα μέρος των θυρίδων. Οι πληροφορίες υποδοχής αποθηκεύονται σε κάθε κόμβο. Μόνο στον κύριο κόμβο θα εκχωρηθούν υποδοχές και στον υποτελή κόμβο δεν θα εκχωρηθούν υποδοχές.
Αλγόριθμος τοποθέτησης αυλακώσεων: k1 = 127001
Από προεπιλογή, το Cluster θα χρησιμοποιήσει τον αλγόριθμο crc16 για να κατακερματίσει την τιμή κλειδιού για να αποκτήσει μια ακέραια τιμή και, στη συνέχεια, να χρησιμοποιήσει αυτήν την ακέραια τιμή στο modulo 16384 για να αποκτήσει τη συγκεκριμένη υποδοχή.
HASH_SLOT = CRC16(κλειδί) % 16384
Ανάκτηση
Προβολή κόμβων
192.168.66.103:8001> cluster nodes
Σκοτώστε τον κύριο κόμβο
lsof -i:8001
kill -9 pid
Παρατηρήστε τις πληροφορίες κόμβου
Τροποποίηση αρχείου διαμόρφωσης
spring.data.redis.cluster.nodes=192.168.47.100:6381,192.168.47.100:6383,192.168.47.100:6380
Ειδοποίηση
1. Το σύμπλεγμα Redis απαιτεί τουλάχιστον 3 κόμβους για να εξασφαλίσει υψηλή διαθεσιμότητα.
2. Θα πρέπει να προσπαθήσετε να αποφύγετε την προσθήκη ή τη διαγραφή κόμβων ενώ εκτελείται το σύμπλεγμα Redis, επειδή αυτό μπορεί να προκαλέσει μετεγκατάσταση δεδομένων και συνεπώς να επηρεάσει τη συνολική απόδοση του συμπλέγματος Redis.
Κώδικας γραμμένος σε Java
@SpringBootTest
public class CluseterTest {
@Autowired
private RedisTemplate<String,Object> redisTemplate;
@Test
void string() {
// 保存字符串
redisTemplate.opsForValue().set("itbaizhan","itbaizhan123");
System.out.println(redisTemplate.opsForValue().get("itbaizhan"));
}
}
Εάν το περιεχόμενό μου είναι χρήσιμο για εσάς, παρακαλώLike, σχόλιο, αγαπημένο .Η δημιουργία δεν είναι εύκολη, η υποστήριξη όλων είναι αυτή που με κρατάει