Si të konfiguroni Redis Replication (me Cluster-Mode të çaktivizuar) në CentOS 8 - Pjesa 1
Redis (Remote Dictionary Server) është një server shumë i popullarizuar dhe i përdorur gjerësisht me burim të hapur, i shpejtë, i shpërndarë dhe efikas në memorie të bazës së të dhënave/strukturës së të dhënave me vlerë kyçe.
Ai ofron një grup të pasur karakteristikash që e bëjnë atë efektiv për një gamë të gjerë rastesh përdorimi: si bazë të dhënash, shtresë memorie, ndërmjetës mesazhesh ose radhë; i zbatueshëm në aplikacionet në internet, aplikacionet e bisedës dhe mesazheve, lojërat, analizat e të dhënave në kohë reale dhe shumë më tepër.
Ai mbështet strukturat fleksibël të të dhënave, replikimin asinkron të master-slave për të shkallëzuar performancën e leximit dhe mbrojtjen kundër humbjes së të dhënave, ndarjen nga ana e klientit për të shkallëzuar performancën e shkrimit, dy forma të qëndrueshmërisë për shkrimin e të dhënave në memorie në disk në një format kompakt, grupim dhe ndarje. Ai gjithashtu përmban dështime automatike për vendosje me disponueshmëri të lartë nëpërmjet Redis Sentinel, skriptimit Lua, transaksioneve dhe shumë të tjera.
Duke qenë një bazë të dhënash NO SQL ose jo-relacionale, Redis ofron disa përfitime të performancës mbi sistemet tradicionale të bazës së të dhënave (si MySQL/MariaDB, PostgreSQL, etj.), sepse të gjitha të dhënat e tij qëndrojnë ose ruhen në memorie duke e bërë atë lehtësisht të aksesueshme për një aplikacion. ndërsa bazat e të dhënave tradicionale duhet të shkruajnë të gjitha të dhënat ose të lexojnë nga disku ose një burim i jashtëm.
Redis është bërë një zgjedhje gjithnjë e më e përhapur për caching, e cila lejon ripërdorimin e të dhënave të ruajtura në memorie (të ruajtura në hapësirën kryesore të memories së një aplikacioni) në vend që të kërkojë gjithmonë një bazë të dhënash për të dhënat e përdorura shpesh. Pra, është një shoqërues fantastik i RDMS (Relacionale Database Management Systems) për të përmirësuar përfundimisht performancën e aplikacionit.
Në këtë seri mësimore tre-pjesëshe Redis, ne do të mbulojmë se si të konfiguroni dhe përdorni disa nga veçoritë kryesore të Redis që janë përsëritja, disponueshmëria e lartë duke përdorur Redis Sentinel dhe Redis Cluster, artikujt janë:
Ky udhëzues tregon se si të konfiguroni Redis Replication (me Cluster-Mode Disabled) në CentOS 8 Linux, duke përfshirë si të instaloni Redis, të konfiguroni masterin dhe kopjet dhe të testoni replikimin.
E rëndësishme: Një grup Redis (d.m.th. një grup replikimi) me modalitetin e grupit të çaktivizuar ka një grup të vetëm nyjesh (p.sh. një master dhe një ose dy kopje) ku një grup Redis me modalitetin e grupimit të aktivizuar mund të përbëhet nga dy ose më shumë grupe nyjesh (p.sh. tre mjeshtra secili ka skllevër ose dy).
- Serverë me instalim CentOS 8
Redis Master Server: 10.42.0.247
Redis Replica1/Slave1: 10.42.0.21
Redis Replica2/Slave2: 10.42.0.34
Me konfigurimin e mësipërm (i cili ka një nyje të vetme primare/master lexim/shkrim dhe 2 nyje replika vetëm për lexim), ne kemi një grup të vetëm nyjesh që përmban të gjitha të dhënat e grupit në secilën nyje. Pasi një skllave lidhet me një master, ai merr një kopje fillestare të bazës së të dhënave të plotë dhe çdo e dhënë që ekzistonte më parë në skllav do të hidhet poshtë.
Përveç kësaj, një klient mund t'i shkruajë vetëm masterit, por të lexojë nga çdo nyje në grup. Dhe ndërsa shkrimet kryhen në master, ata u përhapën te të gjithë skllevërit e lidhur për përditësimin e grupeve të të dhënave të skllevërve në kohë reale.
Hapi 1: Instalimi i Redis në CentOS 8
1. Për të filluar, hyni në të gjitha nyjet CentOS 8 nëpërmjet SSH, më pas instaloni paketën Redis në të gjitha nyjet (master dhe kopje) duke përdorur menaxherin e paketave DNF siç tregohet.
# dnf install @redis
2. Pas përfundimit të instalimit të paketës Redis, nisni shërbimin Redis, aktivizoni që të fillojë automatikisht në çdo nisje të sistemit dhe kontrolloni nëse është në funksion dhe funksionon si më poshtë.
# systemctl start redis
# systemctl enable redis
# systemctl status redis
3. Ju gjithashtu mund të konfirmoni që serveri Redis është në funksion dhe funksionon duke kontrolluar portat e dëgjimit duke përdorur komandën ss, si më poshtë.
# ss -ltpn | grep redis-server
Hapi 2: Konfigurimi i Serverit Master Redis
4. Redis konfigurohet duke përdorur skedarin e konfigurimit /etc/redis.conf, një skedar konfigurimi shembull i vetë-dokumentuar. Së pari, krijoni një kopje rezervë të skedarit origjinal, më pas hapeni për redaktim duke përdorur redaktuesin e zgjedhur të linjës së komandës.
# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf
5. Si parazgjedhje, një shembull Redis është konfiguruar për të dëgjuar dhe pranuar lidhjet në ndërfaqen loopback, duke përdorur direktivën bind. Për të komunikuar me kopjet, masteri duhet të konfigurohet që të dëgjojë adresën e kthimit të IPv4 dhe adresën e saj IP të LAN-it, p.sh. 10.42.0.247.
bind 127.0.0.1 10.42.0.247
6. Më pas, vendosni parametrin e modalitetit të mbrojtur në no
për të lejuar komunikimin me kopjet siç tregohet.
protected-mode no
Gjithashtu, Redis dëgjon në portin 6379 i cili është vendosur duke përdorur direktivën port
. Kjo është porta e të dhënave për komunikimin me API-të e aplikacionit ose klientët CLI.
port 6379
7. Për të siguruar opsionalisht komunikimet master-replica, ne mund ta mbrojmë masterin duke përdorur direktivën e replikës, në mënyrë që klientët/kopjet duhet të lëshojnë një fjalëkalim vërtetimi përpara se të ekzekutojnë ndonjë komandë ose të fillojnë një proces sinkronizimi të përsëritjes, përndryshe masteri do të refuzojë Kërkesë klienti/kopje (mos harroni të vendosni një fjalëkalim të sigurt).
Ne do të përdorim opsionin e mëposhtëm për qëllime demonstrimi, për të treguar se si funksionon.
requirepass [email
8. Gjithashtu, regjistrat e Redis ruhen në skedarin /var/log/redis/redis.log, ky vendoset duke përdorur direktivën e skedarit log dhe niveli i paracaktuar i verbozitetit të serverit është njoftim, i përcaktuar duke përdorur parametrin loglevel.
loglevel notice
logfile /var/log/redis/redis.log
9. Meqenëse systemd është menaxheri i parazgjedhur i sistemit dhe shërbimit në CentOS 8, mund të konfiguroni Redis që të ndërveprojë me pemën e mbikëqyrjes systemd duke vendosur parametrin e mbikëqyrur në systemd.
supervised systemd
10. Pasi të keni bërë të gjitha konfigurimet e nevojshme, ruani skedarin dhe mbylleni. Më pas rinisni shërbimin Redis për të aplikuar ndryshimet e reja.
# systemctl daemon-reload
# systemctl restart redis
11. Për të hyrë në serverin Redis, duhet të përdorim redis-cli (një ndërfaqe e linjës komanduese për serverin redis). Si parazgjedhje, ai lidhet me serverin në hostin lokal (në portin 127.0.0.1 6379). Vini re se për shkak se serveri është i siguruar nga klientët që përdorin një fjalëkalim, ekzekutimi i një komande përpara vërtetimit duhet të dështojë.
Përdorni komandën auth për të dhënë fjalëkalimin e vërtetimit siç tregohet në pamjen e mëposhtme të ekranit.
# redis-cli
127.0.0.1:6379> client list
127.0.0.1:6379> AUTH [email
127.0.0.1:6379> client list
12. Për t'u lidhur me një kopje (pasi t'i konfiguroni ato siç përshkruhet në seksionin vijues), përdorni opsionet -h
dhe -p
për të specifikuar adresën IP të kopjes/emrin e hostit dhe porti përkatësisht (jo porti 6379 duhet të jetë i hapur në murin e zjarrit të kopjes).
# redis-cli -h 10.42.0.21 -p 6379
13. Më pas, hapni portën e të dhënave të serverit Redis në murin e zjarrit për të lejuar lidhjet hyrëse me masterin dhe më pas rifreskoni rregullat e murit të zjarrit duke përdorur komandën firewall-cmd siç tregohet.
# firewall-cmd --zone=public --permanent --add-port=6379/tcp
# firewall-cmd --reload
Hapi 3: Konfigurimi i serverëve Redis Replica/Slave
14. Për të vendosur shpejt një shembull Redis si një kopje në fluturim, përdorni mjetin redis-cli dhe thirrni komandën REPLICAOF siç tregohet.
# redis-cli replicaof 10.42.0.247 6379
OR
# redis-cli
127.0.0.1:6379> REPLICAOF 10.42.0.247 6379
15. Për ta bërë të përhershme lidhjen e riprodhimit, duhet të bëni ndryshimet e mëposhtme në skedarin e konfigurimit. Filloni duke bërë kopje rezervë të skedarit origjinal dhe më pas hapeni për redaktim.
# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf
16. Për të lejuar klientët të lidhen me kopjen për të lexuar të dhëna, shtoni adresën IP të kopjes në direktivën e lidhjes.
# replica1
bind 127.0.0.1 10.42.0.21
# replica2
bind 127.0.0.1 10.42.0.34
17. Për të konfiguruar një shembull Redis si një kopje, përdorni parametrin replicaof dhe vendosni adresën IP të nyjes kryesore (ose emrin e hostit) dhe portin si vlera.
replicaof 10.42.0.247 6379
18. Më pas, duke qenë se shembulli ynë kryesor mbrohet duke përdorur një fjalëkalim, ne duhet të vendosim fjalëkalimin në konfigurimin e replikës për të mundësuar që ai të vërtetohet te masteri, duke përdorur parametrin masterauth.
masterauth [email
19. Për më tepër, kur një kopje humbet lidhjen e saj me masterin, ose kur riprodhimi është duke u zhvilluar, kopja konfigurohet për t'iu përgjigjur kërkesave të klientit, ndoshta me të dhëna \të vjetruara. Por nëse është sinkronizimi i parë, atëherë grupi i të dhënave mund të jetë thjesht bosh. Kjo sjellje kontrollohet nga parametri replica-serve-stale-data.
Dhe, meqenëse Redis 2.6 si parazgjedhje, kopjet janë vetëm për lexim, kjo kontrollohet nga parametri replica-read-only. Ju mund të bëni rregullime të tjera të konfigurimit të kopjeve për t'iu përshtatur nevojave të aplikacionit tuaj.
20. Pasi të keni bërë të gjitha ndryshimet e nevojshme, rinisni shërbimin Redis në të gjitha kopjet.
# systemctl restart redis
21. Gjithashtu, hapni portën 6379 në murin e zjarrit për të lejuar lidhjet nga masteri dhe klientët me kopjet dhe rifreskoni rregullat e murit të zjarrit.
# firewall-cmd --zone=public --permanenent --add-port=6379/tcp
# firewall-cmd --reload
Hapi 4: Kontrolloni Statusin e Replikimit të Master-Replica
22. Pasi të përfundojë konfigurimi i replikimit master-replica, ne mund të kontrollojmë nëse konfigurimi po funksionon mirë si më poshtë.
Në master, ekzekutoni komandat e mëposhtme.
# redis-cli
127.0.0.1:6379> AUTH [email
127.0.0.1:6379> info replication
23. Gjithashtu, kontrolloni statusin e replikimit në kopjet/skllevërit si më poshtë.
# redis-cli
127.0.0.1:6379> info replication
23. Tani le të testojmë replikimin duke vendosur një vlerë-kyç në instancën kryesore dhe të kontrollojmë nëse të dhënat janë sinkronizuar me replikat.
Në master, bëni këtë:
# redis-cli
127.0.0.1:6379> AUTH [email
127.0.0.1:6379> set domain 'linux-console.net'
24. Më pas kontrolloni nëse të dhënat janë sinkronizuar me kopjet siç tregohet.
# redis-cli
127.0.0.1:6379> get domain
25. Redis ka një veçori që i mundëson një shembulli master të kufizojë rrezikun e humbjes së disa shkrimeve në rast se nuk disponohen kopje të mjaftueshme, në një numër të caktuar sekondash.
Kjo do të thotë që një master mund të ndalojë pranimin e shkrimeve nëse ka më pak se N kopje të lidhura, me një vonesë më të vogël ose të barabartë se M sekonda, siç kontrollohet nga opsionet min-replicas-to-write dhe min-replicas-max-lag përkatësisht.
Për t'i vendosur ato, hiqni komentet dhe vendosni vlerat sipas kërkesave tuaja të konfigurimit në /etc/redis.conf, siç tregohet në pamjen e mëposhtme të ekranit. Ky konfigurim do të thotë që, nga ping-u i fundit te replikat, pas 10 sekondash, nëse ka më pak se 2 kopje në linjë, masteri do të ndalojë së pranuari shkrime.
min-replicas-to-write 2
min-replicas-max-lag 10
Mund të gjeni më shumë opsione në pjesën tjetër të skedarit të konfigurimit /etc/redis.conf dhe për më shumë detaje lexoni rreth replikimit në dokumentacionin Redis.
Në artikullin vijues, ne do të trajtojmë se si të konfiguroni Redis për disponueshmëri të lartë me Sentinel në CentOS 8. Deri atëherë, qëndroni të kyçur dhe mos harroni të ndani mendimet dhe pyetjet tuaja duke përdorur formularin tonë të komenteve më poshtë është aty ku mund të na kontaktoni.