Yadda za a Kafa Redungiyar Redis a CentOS 8 - Sashe na 3


Redis Cluster fasali ne na Redis wanda ke goyan bayan ɓarnataccen atomatik, kwafi da kuma kasancewa mai yawa wanda aka aiwatar dashi a baya ta amfani da Sentinels. An tsara shi don manyan dalilai guda biyu: na farko shine raba dataset ɗinka ta atomatik tsakanin misalai da yawa kuma abu na biyu don samar da ɗan wadatar samu yayin rabuwa, don ci gaba da aiwatarwa yayin da wasu misalai (musamman ma masters) suka kasa ko ba su iya sadarwa tare da yawancin nodes a cikin gungu.

Koyaya, gungu ya tsaya don yin aiki yayin manyan matsaloli (misali lokacin da yawancin masanan basu samu). Hakanan, idan maigida da bawa suka gaza a lokaci guda, gungu ba zai iya ci gaba da gudanar da ayyuka na yau da kullun ba (duk da cewa aikin shine ƙara ƙarin nodes ko ƙirƙirar asymmetry a cikin gungu, don canza canjin fasalin ta atomatik).

Dangane da bayanan tarin Redis, '' karamin tari '' wanda ke aiki kamar yadda ake tsammani yana buƙatar ƙunsar aƙalla mahaɗan mahaɗan 3. Amma saitin da ya fi dacewa don samun wadata ya kamata ya sami aƙalla ƙugiyoyi 6 tare da iyayengiji uku da bayi uku, kowane maigida yana da bawa.

Mahimmanci: Redis Cluster shima yana da iyakancewa waɗanda basu da tallafi ga mahalli na NATT da kuma wuraren da aka rage adiresoshin IP ko tashar TCP misali a ƙarƙashin Docker. Allyari, ba kowane ɗakin karatu na abokan ciniki ke tallafawa ba.

Wannan labarin yana nuna yadda za'a saita Redis Cluster (tare da Cluster-Mode Disabled) a cikin CentOS 8. Ya haɗa da yadda ake girka Redis, saita nodes ɗin, ƙirƙirar rukuni da kuma gwada ɓarna.

Lura: Don wannan jagorar, zamuyi amfani da sabbin lokuta/marasa kyau na Redis don gudanar da yanayin tarin. Yanayin gungu ba zai yi aiki tare da wasu abubuwan daidaitawa da aka yi ba a cikin jagororin farko guda biyu na Redis Series ɗinmu, musamman ba ya aiki lokacin da aka yi amfani da kwatancen siga.

  1. Sabis tare da Shigar da CentOS 8

Redis Master1: 10.42.0.247
Redis Master2: 10.42.0.197
Redis Master3: 10.42.0.132

Redis Slave1: 10.42.0.200
Redis Slave2: 10.42.0.21
Redis Slave3: 10.42.0.34

Saitin mu yana da 3 na karanta/rubuta manyan nodes da kuma na karanta guda 3 kawai, kowane maigida yana da kwatankwacin abu daya, saboda haka shards uku suna dauke da dukkan bayanan tarin a cikin kowane kumburi. API na aikace-aikace ko abokin ciniki na CLI na iya rubutawa kawai ga nodes na masarufi amma karanta daga kowane kumburi a cikin gungu.

Mataki 1: Shigar da Redis akan Duk Nodes

1. Shiga cikin dukkan lokutan ta hanyar SSH, sa'annan ku bi wannan umarni don shigar da ƙirar Redis ta amfani da mai sarrafa kunshin DNF kamar yadda aka nuna.

# dnf module install redis

2. Na gaba, fara aikin Redis, ba shi damar farawa ta atomatik a tsarin boot kuma duba matsayinta don tabbatar da cewa yana gudana (tabbatar da sabis ɗin a duk lokutan 6):

# systemctl start redis
# systemctl enable redis
# systemctl status redis

Mataki 2: Harhadawa akan Redis Instances akan dukkan Nodes

3. Wannan sashin yana bayanin yadda ake tsara nlus-mallen nodes. Ka tuna yin abubuwan daidaitawa a nan akan dukkan nodes.

Yi amfani da fayil ɗin sanyi /etc/redis.conf don saita sabar Redis. A matsayin aikin da aka ba da shawarar, ƙirƙirar madadin fayil na asali kafin gyara shi ta amfani da editan rubutun layin zaɓi da kuka zaɓa.

# cp /etc/redis.conf /etc/redis.conf.orig
# vi /etc/redis.conf

4. Na gaba, nemo sigogin daidaitawa masu zuwa kuma gyara dabi'unsu kamar yadda aka nuna. Thea'idar ma'aunin da aka ɗauka saita ƙirar uwar garken Redis za ta saurara, saita ƙimar ta zuwa misalin LAN IP. Cire 127.0.0.1 saboda mun fahimci barinsa a can yana jinkirta aikin ƙirƙirar, musamman matakin shiga cikin gungu.

bind  10.42.0.247

Sannan saita yanayin kariya zuwa a'a don ba da damar haɗi daga wasu misalai akan tarin.

protected-mode no

Yanayin tashar yana bayyana tashar da sabis na Redis zai saurara don haɗin, tsoho shine 6379. Wannan shine tashar data don sadarwa tare da abokan ciniki.

port 6379

5. Saiti na gaba na sigogi zai ba da damar yanayin tarin kuma saita wasu abubuwan fasalinsa masu amfani. Sigar mai aiki da tarin, lokacin da aka saita zuwa ee , yana kunna yanayin tarin.

cluster-enabled yes

Na gaba, ma'aunin fayil-config-file ya saita sunan fayil ɗin tari na tari na tari (misali nodes-6379.conf). An ƙirƙiri fayel ɗin a cikin kundin adireshin aiki (tsoho shine/var/lib/redis da aka bayyana ta amfani da sigar sigar) kuma ba mai daidaitaccen mai amfani bane.

cluster-config-file nodes-6379.conf

Zaɓin tari mai amfani mai zuwa na gaba shine ƙarshen-cushe-node-timeout, ana amfani dashi don saita matsakaicin lokacin a cikin milliseconds wani misali bazai iya samuwa ba don a yi la'akari dashi a cikin yanayin gazawa. Darajar 15000 daidai take da sakan 15.

cluster-node-timeout 15000

6. Har ila yau, muna buƙatar ƙarfafa Redis dagewa kan faifai. Zamu iya amfani da daya daga cikin yanayin dagewa, wannan shine Append Only File (AOF): yana yin rajista (a cikin fayil ɗin appendonly.aof da aka kirkira a ƙarƙashin kundin adireshin aiki) kowane aikin rubuce rubuce da aka samu cikin nasara ta sabar. Za a kunna bayanan yayin farawar sabar don sake sake tsara bayanan asali.

Don kunna ta, saita ma'aunin appendonly zuwa ee .

appendonly yes

7. Bayan yin duk canje-canje, sake kunna sabis na Redis akan duk node don amfani da canje-canje kwanan nan.

# systemctl restart redis

8. A wannan lokacin, kowane gungu gungu yakamata ya sami ID. Kuna iya duba wannan a cikin logfile ɗin da yake a /var/log/redis/redis.log.

# cat /var/log/redis/redis.log

9. Na gaba, buɗe tashar jiragen ruwa 6397 da 16379 akan duk lokutan. Ana amfani da tashar jiragen ruwa ta baya don bas ɗin tari (tashar sadarwa ta kumburi-ƙusa ta amfani da yarjejeniyar binary). Wannan shine ainihin abin buƙata don haɗin haɗin TCP na Redis.

# firewall-cmd --zone=public --permanent --add-port=6379/tcp 
# firewall-cmd --zone=public --permanent --add-port=16379/tcp 
# firewall-cmd --reload

Mataki na 3: Creatirƙirar ƙungiyar Redis

10. Don ƙirƙirar gungu, yi amfani da abokin cinikin layin umarni na redis-cli kamar haka. --luster kirkirar yana ba da damar ƙirƙirar rukuni kuma --cluster-replicas 1 na nufin ƙirƙirar samfuri ɗaya a kowane maigida.

Don saitin mu wanda yake da nodes 6, zamu sami iyayengiji 3 da bayi 3.

Lura cewa node 6 na farko za'a dauke su a matsayin masters (M) kuma ukun masu zuwa za a dauke su bayi (S) . Bawa na farko watau 10.42.0.200:6379 ya maimaita maigidan na farko watau 10.42.0.247:6379, bawa na biyu ya maimaita na biyu, a cikin tsari.

An tsara umarnin mai zuwa ta hanyar da sakamakon zai wakilci saitinmu na hankali a sama.

# redis-cli --cluster create 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6379 10.42.0.34:6379 --cluster-replicas 1

11. Da zarar an sami nasarar kirkirar tarin, sai a bi umarni mai zuwa akan duk wani mai masauki (saka adireshin IP dinsa ta amfani da tutar -h ) don jero dukkan tarin gungu.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes

Ya kamata ku sami damar ganin duk mahaɗan gungu, tare da bayin da ke nuna ubangijinsu, kamar yadda aka nuna a cikin hoton da ke tafe.

Fannoni daban-daban suna cikin wannan tsari: ID ɗin kumburi, adireshin IP: tashar jiragen ruwa, tutoci, ping na ƙarshe da aka aika, pong ɗin da aka karɓa, lokacin daidaitawa, yanayin mahaɗa, ramummuka (don masters).

Mataki na 4: Gwajin Redis Cluster Failover

12. A wannan ɓangaren, zamu nuna yadda ake gwada ɓataccen ɓangare. Da farko, bari mu kula da maigida.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Hakanan, lura da bayi na Redis.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

13. Na gaba, bari mu tsayar da sabis ɗin Redis akan ɗayan maɓuɓɓugan masanan misali 10.42.0.197 kuma bincika duk mahaɗan maɓuɓɓuka a cikin gungu.

# systemctl stop redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master

Daga hoton da ke gaba, za ka ga cewa kumburin 10.42.0.197:6367 yana cikin halin lalacewa kuma bawanta 10.42.0.21:6379 an inganta shi zuwa matsayin mai kulawa.

14. Yanzu bari mu sake farawa da sabis ɗin Redis a kan kumburin da bai yi nasara ba kuma bincika duk masters a cikin gungu.

# systemctl start redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Hakanan, bincika bayi don tabbatar da cewa ubangijin da ya gaza yanzu bawa ne.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

Mataki na 5: Gwajin Bayanan Bayanai a theauren Rukunin Redis

15. Wannan ɓangaren na ƙarshe yana bayanin yadda ake tabbatar da yin ɗamarar bayanan ƙungiya. Zamu kirkiro maɓalli da ƙima akan ɗayan maigidan, sa'annan kuyi ƙoƙarin karanta shi daga duk mahaɗan mahaɗan kamar haka. Yi amfani da sauyawa -c don kunna ikon haɗa tarin a ƙarƙashin mai amfani da redis-cli da samun damar bayanai a cikin yanayin tari.

# redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
# redis-cli -c -h 10.42.0.247 -p 6379 get name
# redis-cli -c -h 10.42.0.21 -p 6379 get name
# redis-cli -c -h 10.42.0.132 -p 6379 get name
# redis-cli -c -h 10.42.0.200 -p 6379 get name
# redis-cli -c -h 10.42.0.197 -p 6379 get name
# redis-cli -c -h 10.42.0.34 -p 6379 get name

Lineasan layin shine Redis Cluster ita ce hanyar da aka fi so don samun ƙira ta atomatik, riɓanyawa, da wadatar mai yawa. Akwai wasu sigogi da yawa da aka yi rikodin da kyau a cikin sauran fayil ɗin /etc/redis.conf, zaku iya samun ƙarin bayani a cikin takaddun hukuma: Redis cluster tutorial da Redis cluster specification.

Wannan ya kawo mu ƙarshen jerin rukunoni uku na Redis koyawa. Ana iya amfani da fom ɗin da ke ƙasa don aika tambayoyi ko tsokaci.