Bii o ṣe le Ṣeto iṣupọ Redis kan ni CentOS 8 - Apá 3


Redis Cluster jẹ ẹya Redis ti a ṣe sinu rẹ ti o ṣe atilẹyin sharding aifọwọyi, atunse ati wiwa to gaju eyiti o ti ṣe iṣaaju nipa lilo Sentinels. A ṣe apẹrẹ fun awọn idi pataki meji: ọkan ni lati pin ipin data rẹ laifọwọyi laarin awọn iṣẹlẹ lọpọlọpọ ati keji lati pese iwọn diẹ ti wiwa lakoko awọn ipin, lati tẹsiwaju awọn iṣiṣẹ nigbati diẹ ninu awọn iṣẹlẹ (paapaa awọn oluwa) kuna tabi ko le ni ibaraẹnisọrọ pẹlu ọpọlọpọ ninu awọn apa ninu iṣupọ.

Bibẹẹkọ, iṣupọ naa duro lati ṣiṣẹ ni iṣẹlẹ ti awọn ikuna ti o tobi julọ (fun apẹẹrẹ nigba ti ọpọ julọ ti awọn apẹẹrẹ tituntosi ko si). Pẹlupẹlu, ti oluwa ati ẹrú ba kuna ni akoko kanna, iṣupọ ko le tẹsiwaju awọn iṣẹ ṣiṣe deede (botilẹjẹpe iṣẹ-ṣiṣe ni lati ṣafikun awọn apa diẹ sii tabi ṣẹda asymmetry ninu iṣupọ naa, lati yi iyipada iṣupọ iṣupọ pada si adaṣe).

Gẹgẹbi iwe idapọ Redis,\"iṣupọ ti o kere ju" ti o ṣiṣẹ bi o ti ṣe yẹ nilo lati ni o kere ju awọn apa ọga 3. Ṣugbọn iṣeto ti o dara julọ fun wiwa to gaju yẹ ki o ni o kere ju awọn apa 6 pẹlu awọn oluwa mẹta ati awọn ẹrú mẹta, oluwa kọọkan ni ẹrú.

Pataki: Redis Cluster tun ni awọn idiwọn diẹ eyiti o jẹ aini atilẹyin fun awọn agbegbe NATT bakanna awọn ibiti awọn adirẹsi IP tabi awọn ibudo TCP ti dinku fun apẹẹrẹ labẹ Docker. Ni afikun, kii ṣe gbogbo ile-ikawe alabara ni atilẹyin rẹ.

Nkan yii fihan bi a ṣe le ṣeto Redis Cluster kan (pẹlu Alaabo Ipo-iṣupọ) ni CentOS 8. O pẹlu bii o ṣe le fi Redis sori ẹrọ, tunto awọn apa iṣupọ, ṣẹda iṣupọ kan ati idanwo ikuna iṣupọ naa.

Akiyesi: Fun itọsọna yii, a yoo lo awọn iṣẹlẹ Redis alabapade/ofo lati ṣiṣe ipo iṣupọ. Ipo iṣupọ kii yoo ṣiṣẹ pẹlu diẹ ninu awọn atunto ti a ṣe ni awọn itọsọna akọkọ akọkọ ti Redis Series wa, ni pataki o ko ṣiṣẹ nigbati a ba lo ẹda ti paramita naa.

  1. Awọn olupin pẹlu fifi sori 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

Eto wa ni 3 awọn kika oluka kika/kọ ati awọn apa ajọra kika 3, oluwa kọọkan ni ẹda kan, nitorinaa awọn shards mẹta ni gbogbo data iṣupọ ninu oju-iwe kọọkan. Ohun elo API tabi alabara CLI le kọ si awọn apa ọga nikan ṣugbọn ka lati eyikeyi oju ipade ninu iṣupọ.

Igbesẹ 1: Fifi Redis sori Gbogbo Awọn apa

1. Wọle sinu gbogbo awọn apeere nipasẹ SSH, lẹhinna ṣiṣe aṣẹ atẹle lati fi sori ẹrọ module Redis nipa lilo oluṣakoso package DNF bi o ti han.

# dnf module install redis

2. Itele, bẹrẹ iṣẹ Redis, jẹ ki o bẹrẹ laifọwọyi ni bata eto ati ṣayẹwo ipo rẹ lati rii daju pe o nṣiṣẹ (ṣayẹwo iṣẹ naa lori gbogbo awọn iṣẹlẹ 6):

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

Igbesẹ 2: Tunto Awọn apejọ Redis lori gbogbo Awọn apa

3. Apakan yii ṣe apejuwe bi o ṣe le tunto awọn apa iṣupọ Redis. Ranti lati ṣe awọn atunto nibi lori gbogbo awọn apa.

Lo faili iṣeto /etc/redis.conf lati tunto olupin Redis. Gẹgẹbi iṣe ti a ṣe iṣeduro, ṣẹda afẹyinti ti faili atilẹba ṣaaju ṣiṣatunkọ rẹ nipa lilo olootu ọrọ laini aṣẹ ti o fẹ.

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

4. Itele, wa awọn atunto iṣeto atẹle ki o ṣatunkọ awọn iye wọn bi o ti han. Paramita abuda ṣeto wiwo ti olupin Redis yoo tẹtisi, ṣeto iye rẹ si apẹẹrẹ LAN IP. Yọ 127.0.0.1 kuro nitori a rii daju pe o fi silẹ nibẹ n fa fifalẹ ilana ti ẹda iṣupọ, ni pataki ipele ti didapọ iṣupọ.

bind  10.42.0.247

Lẹhinna ṣeto ipo idaabobo si rara lati gba awọn asopọ laaye lati awọn iṣẹlẹ miiran lori iṣupọ naa.

protected-mode no

Paramita ibudo naa ṣalaye ibudo ti olupin Redis yoo tẹtisi lori fun awọn isopọ, aiyipada jẹ 6379. Eyi ni ibudo data fun sisọrọ pẹlu awọn alabara.

port 6379

5. Eto awọn atẹle ti yoo tẹle yoo mu ipo iṣupọ ṣiṣẹ ki o ṣeto diẹ ninu awọn ẹya ti o wulo. Párádísè ti iṣu-iṣupọ, nigbati o ṣeto si bẹẹni , mu ipo iṣupọ ṣiṣẹ.

cluster-enabled yes

Nigbamii ti, paramita faili iṣupọ-config-file ṣeto orukọ faili iṣupọ iṣupọ iṣupọ faili kan (fun apẹẹrẹ awọn apa-6379.conf). A ṣẹda faili ni itọsọna ṣiṣẹ (aiyipada ni/var/lib/redis ti ṣalaye lilo paramita dir) ati pe kii ṣe atunṣe olumulo.

cluster-config-file nodes-6379.conf

Aṣayan iṣupọ ti o wulo ti n tẹle jẹ iṣupọ-ipade-akoko, o ti lo lati ṣeto iye akoko ti o pọ julọ ni awọn milliseconds apeere kan ko le wa fun o lati gbero ni ipo ikuna. Iye ti 15000 jẹ deede si awọn aaya 15.

cluster-node-timeout 15000

6. A tun nilo lati jẹki itẹramọṣẹ Redis lori disk. A le lo ọkan ninu awọn ipo itẹramọṣẹ, iyẹn ni Faili Nikan Firanṣẹ (AOF): o ṣe akọọlẹ (ninu faili faili naa ti a ṣẹda labẹ itọsọna iṣẹ) gbogbo iṣẹ kikọ ni ifijišẹ ti olupin gba. Awọn data yoo dun lakoko ibẹrẹ olupin lati tun atunto ipilẹ data atilẹba.

Lati mu ṣiṣẹ, ṣeto eto apẹrẹ si bẹẹni .

appendonly yes

7. Lẹhin ṣiṣe gbogbo awọn ayipada, tun bẹrẹ iṣẹ Redis lori gbogbo awọn apa lati lo awọn ayipada to ṣẹṣẹ.

# systemctl restart redis

8. Ni aaye yii, gbogbo ipade iṣupọ yẹ ki o ni ID bayi. O le ṣayẹwo eyi ni log log ti o wa ni /var/log/redis/redis.log.

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

9. Itele, ṣiṣi ibudo 6397 ati 16379 lori gbogbo awọn iṣẹlẹ. Ti lo ibudo nigbamii fun ọkọ akero iṣupọ (ikanni ibaraẹnisọrọ node-to-node nipa lilo ilana ilana alakomeji). Eyi jẹ ibeere ipilẹ fun awọn asopọ TCP iṣupọ Redis.

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

Igbesẹ 3: Ṣiṣẹda iṣupọ Redis

10. Lati ṣẹda iṣupọ, lo alabara ila-aṣẹ redis-cli gẹgẹbi atẹle. Awọn -kilẹgbẹ ṣẹda n jẹ ki iṣupọ iṣupọ ati -kolluster-replicas 1 tumọ si ṣẹda ẹda kan fun oluwa.

Fun iṣeto wa ti o ni awọn apa 6, a yoo ni awọn oluwa 3 ati awọn ẹrú 3.

Akiyesi pe awọn apa 6 akọkọ ni ao gba ni oluwa (M) ati awọn mẹta ti o tẹle yoo ni akiyesi ẹrú (S) . Ẹrú akọkọ ie 10.42.0.200:6379 ṣe atunṣe oluwa akọkọ ie 10.42.0.247:6379, ẹrú keji ṣe atunṣe oluwa keji, ni aṣẹ yẹn.

A ṣe agbekalẹ aṣẹ atẹle ni ọna ti abajade yoo ṣe aṣoju iṣeto oye wa loke.

# 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. Lọgan ti ẹda iṣupọ naa ṣaṣeyọri, ṣiṣe aṣẹ atẹle lori eyikeyi ogun (ṣafihan adirẹsi IP rẹ nipa lilo asia -h ) lati ṣe atokọ gbogbo awọn apa iṣupọ.

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

O yẹ ki o ni anfani lati wo gbogbo awọn apa iṣupọ, pẹlu awọn ẹrú ti o n tọka awọn oluwa wọn, bi a ṣe han ninu sikirinifoto atẹle.

Awọn aaye oriṣiriṣi wa ni aṣẹ yii: ID oju ipade, adiresi IP: ibudo, awọn asia, ping ti o kẹhin ti a firanṣẹ, pong ti o kẹhin gba, igba iṣeto, ipo ọna asopọ, awọn iho (fun awọn oluwa).

Igbesẹ 4: Idanwo Redai Cluster Failover

12. Ni apakan yii, a yoo ṣe afihan bi a ṣe le ṣe idanwo ikuna iṣupọ kan. Ni akọkọ, jẹ ki a ṣe akiyesi awọn oluwa.

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

Pẹlupẹlu, ṣe akiyesi awọn ẹrú Redis.

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

13. Nigbamii, jẹ ki a da iṣẹ Redis duro lori ọkan ninu awọn apa ọga fun apẹẹrẹ 10.42.0.197 ki o ṣayẹwo gbogbo awọn apa ọga ninu iṣupọ.

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

Lati sikirinifoto atẹle, o le rii pe oju ipade 10.42.0.197:6367 wa ni ipo ikuna ati pe ẹrú rẹ 10.42.0.21:6379 ti ni igbega si ipo oluwa.

14. Bayi jẹ ki a bẹrẹ iṣẹ Redis lẹẹkansii lori oju ipade ti o kuna ki o ṣayẹwo gbogbo awọn oluwa ninu iṣupọ naa.

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

Pẹlupẹlu, ṣayẹwo awọn ẹrú iṣupọ lati jẹrisi pe oluwa ti o kuna ti di ẹrú bayi.

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

Igbesẹ 5: Ṣiṣẹ Didaakọ Data Kọja iṣupọ Redis

15. Apakan ti o kẹhin yii ṣalaye bi a ṣe le ṣayẹwo iru idapọ data iṣupọ. A yoo ṣẹda bọtini ati iye lori ọkan ninu awọn oluwa, lẹhinna gbiyanju lati ka lati gbogbo awọn apa iṣupọ bi atẹle. Lo iyipada -c lati jẹki atilẹyin iṣupọ labẹ iwulo redis-cli ati wiwọle data ni ipo iṣupọ.

# 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

Laini isalẹ ni Redis Cluster jẹ ọna ti o fẹ julọ lati gba sharding aifọwọyi, ẹda, ati wiwa to gaju. Ọpọlọpọ awọn atunto atunto ti o ni akọsilẹ daradara ti o wa ninu iyoku faili /etc/redis.conf, o le wa alaye diẹ sii ninu iwe aṣẹ osise: Ikẹkọ iṣupọ Redis ati alaye alaye iṣupọ Redis.

Eyi mu wa de opin apa-ọna Tutorial olukọni Redis mẹta. Fọọmu esi ni isalẹ le ṣee lo lati firanṣẹ awọn ibeere tabi awọn asọye.