CentOS 8 - 1-nji bölümde Redis köpeltmesini nädip sazlamaly (Klaster rejimi ýapyk)


Redis (Uzakdan sözlük serweri) örän meşhur we giňden ulanylýan açyk çeşme, çalt, paýlanan we ýatda saklaýan açar gymmaty maglumat bazasy/maglumat gurluşy serweri.

Köp ulanylyş ýagdaýlary üçin täsirli edýän baý aýratynlyklar toplumyny hödürleýär: maglumat bazasy, keş keşi, habar dellaly ýa-da nobat hökmünde; web programmalarynda, söhbetdeşlik we habarlaşma programmalarynda, oýunlarda, real wagt maglumatlary analitikasynda we ş.m.

Çeýe maglumat gurluşlaryny, okalýan öndürijiligi masştablandyrmak we maglumatlaryň ýitmeginden goramak üçin ussat gul asynkron köpeltmegi, ýazuw öndürijiligini masştablandyrmak üçin müşderi tarapyndan saklanmagy, ýatda saklaýan maglumatlary ykjam formatda diskde ýazmagyň iki görnüşi, toparlanyş we goldaýar. bölmek. Şeýle hem, Redis Sentinel, Lua skriptleri, amallar we başgalar arkaly ýokary elýeterliligi ýerleşdirmek üçin awtomatiki näsazlyklar bar.

SOK SQL ýa-da baglanyşyksyz maglumatlar bazasy bolmak bilen, Redis adaty maglumatlar bazasy ulgamlaryndan (MySQL/MariaDB, PostgreSQL we ş.m.) käbir öndürijilik artykmaçlyklaryny hödürleýär, sebäbi ähli maglumatlar bir programma aňsatlyk bilen elýeterli ýa-da ýatda saklanýar, adaty maglumatlar bazalary ähli maglumatlary ýazmaly ýa-da diskden ýa-da daşarky çeşmeden okamaly.

Redis, keş ulanylýan maglumatlary (programmanyň esasy ýat giňişliginde saklanýar) ýygy-ýygydan ulanylýan maglumatlar üçin maglumat bazasyny soramaga däl-de, gaýtadan ulanmaga mümkinçilik berýän keş keşbi üçin has giňden ýaýran saýlaw boldy. Şeýlelik bilen amaly ýerine ýetirişini gowulandyrmak üçin RDMS-iň (Baglanyşyk maglumatlar bazasyny dolandyryş ulgamlary) ajaýyp ýoldaşy.

Üç bölümli Redis okuw sapagynda, Redis Sentinel we Redis Klasterini ulanyp köpeltmek, Redisiň käbir esasy aýratynlyklaryny nädip gurmalydygyny we ulanmalydygyny öwreneris, makalalar:

Bu gollanma, CentOS 8 Linux-da Redis Replication (Klaster-Mode Disabled bilen) nädip sazlamalydygyny, şol sanda Redis-i nädip gurmalydygyny, ussany we nusgalaryny nädip sazlamalydygyny we köpeltmäni synap görmelidigini görkezýär.

Möhüm: Klaster re modeimi ýapyk bolan Redis Klasteriniň (meselem, köpeltmek klasteriniň) bir düwün topary bar (meselem, ussat we bir ýa-da iki göçürme), klaster re modeimi işjeňleşdirilen Redis topary iki ýa-da has köp düwün toparyndan ybarat bolup biler (meselem, üç ussat). hersiniň gullary ýa-da ikisi bar).

  1. CentOS 8 gurnamaly serwerler

Redis Master Server: 10.42.0.247
Redis Replica1/Slave1: 10.42.0.21
Redis Replica2/Slave2: 10.42.0.34

Aboveokardaky gurnama bilen (bir gezek okamak/ýazmak başlangyç/baş düwün we diňe okalýan 2 sany nusga düwmesi bar), her düwünde klaster maglumatlarynyň hemmesini öz içine alýan ýeke düwün toparymyz bar. Gul ussa birikdirilenden soň, doly maglumat bazasynyň başlangyç nusgasyny alýar we gulda ozal bar bolan maglumatlar taşlanar.

Mundan başga-da, müşderi diňe ussa ýazyp biler, ýöne klasterdäki islendik düwünden okap biler. Ussada ýazgylar ýerine ýetirilişi ýaly, gul maglumatlar bazalaryny hakyky wagtda täzelemek üçin ähli gullara ýaýrady.

1-nji ädim: CentOS 8-de Redis gurmak

1. Ilki bilen, SSH arkaly ähli CentOS 8 düwünlerine giriň, soňra görkezilişi ýaly DNF paket dolandyryjysyny ulanyp, Redis paketini ähli düwünlere (ussat we göçürmeler) guruň.

# dnf install @redis

2. Redis paketini gurnanyňyzdan soň, Redis hyzmatyny başlaň, her ulgam ýüklemesinden awtomatiki başlamaga we aşakdaky ýaly işleýändigini ýa-da işlemeýändigini barlamaga mümkinçilik beriň.

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

3. Şeýle hem, sis buýrugyny ulanyp diňleýiş portlaryny barlamak arkaly Redis serweriniň işleýändigini we işleýändigini tassyklap bilersiňiz.

# ss -ltpn | grep redis-server

2-nji ädim: Redis Master serwerini sazlamak

4. Redis, öz-özi resminamalaşdyrylan mysal konfigurasiýa faýly /etc/redis.conf konfigurasiýa faýly arkaly düzülýär. Ilki bilen asyl faýlyň ätiýaçlyk nusgasyny dörediň, soňra buýruk setiriniň redaktoryny ulanyp redaktirlemek üçin açyň.

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

5. Düzgüne görä, “Redis” mysaly, baglanyşyk direktiwasyny ulanyp, aýlaw interfeýsindäki baglanyşyklary diňlemek we kabul etmek üçin düzülendir. Göçürmeler bilen habarlaşmak üçin ussat IPv4 aýlaw adresini we LAN IP adresini, ýagny 10.42.0.247 diňlemek üçin düzülmelidir.

bind 127.0.0.1 10.42.0.247

6. Ondan soň, göçürmeler bilen görkezilişi ýaly aragatnaşyk saklamak üçin goralýan re modeim parametrini ýok düzüň.

protected-mode no

Şeýle hem, Redis port direktiwasy bilen düzülen 6379-njy portda diňleýär. Bu, programma API-leri ýa-da CLI müşderileri bilen aragatnaşyk saklamak üçin maglumat portudyr.

port 6379

7. Esasy göçürme aragatnaşygyny islege görä ygtybarly etmek üçin, talaplar görkezmesini ulanyp, ussany gorap bileris, şonuň üçin müşderiler/göçürmeler haýsydyr bir buýruk işlemezden ýa-da köpeltmek sinhronlaşdyryş işine başlamazdan ozal tassyklamak parolyny bermeli bolarlar, ýogsam ussa ret eder müşderi/göçürme haýyşy (ygtybarly parol goýmagy ýatdan çykarmaň).

Onuň nähili işleýändigini görkezmek üçin aşakdaky warianty görkezeris.

requirepass  [email 

8. Şeýle hem, Redis surnallary /var/log/redis/redis.log faýlynda saklanýar, bu logfile direktiwasy bilen düzülýär we loglevel parametri bilen kesgitlenýän serweriň deslapky derejesi duýulýar.

loglevel  notice
logfile  /var/log/redis/redis.log

9. Systemd CentOS 8-de deslapky ulgam we hyzmat dolandyryjysy bolany üçin, Redis-i gözegçilik edilýän parametri systemd-e belläp, systemd gözegçilik agajy bilen täsirleşip bilersiňiz.

supervised systemd

10. necessaryhli zerur konfigurasiýalary düzeniňizden soň faýly ýazdyryň we ýapyň. Soňra täze üýtgeşmeleri ulanmak üçin Redis hyzmatyny täzeden açyň.

# systemctl daemon-reload
# systemctl restart redis

11. Redis serwerine girmek üçin redis-müşderini (redis-serwere buýruk setiri interfeýsi) ulanmalydyrys. Düzgüne görä, ýerlihostdaky serwere birikýär (127.0.0.1 port 6379). Serwer paroly ulanyp müşderilerden üpjün edilendigi sebäpli, tassyklamakdan ozal buýruk işletmeli.

Aşakdaky skrinshotda görkezilişi ýaly tanamak parolyny üpjün etmek üçin auth buýrugyny ulanyň.

# redis-cli
127.0.0.1:6379> client list
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> client list

12. Göçürmä birikmek üçin (indiki bölümde görkezilişi ýaly düzülenden soň), göçürme IP adresini/host adyny görkezmek üçin -h we -p opsiýalaryny ulanyň we port degişlilikde (nusganyň gorag diwarynda 6379 port açyk bolmaly däl).

# redis-cli -h 10.42.0.21 -p 6379

13. Ondan soň, ussa girmäge rugsat bermek üçin gorag diwaryndaky Redis serwer maglumat portuny açyň we firewall-cmd buýrugyny ulanyp görkezilişi ýaly täzeden açyň.

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

3-nji ädim: Redis Replica/Gul serwerlerini sazlamak

14. Redis mysalyny çybygyň nusgasy hökmünde çalt bellemek üçin redis-müşderi programmasyny ulanyň we görkezilişi ýaly REPLICAOF buýrugyna jaň ediň.

# redis-cli replicaof 10.42.0.247 6379
OR
# redis-cli
127.0.0.1:6379> REPLICAOF 10.42.0.247 6379

15. Göçürmek baglanyşygyny hemişelik etmek üçin konfigurasiýa faýlynda aşakdaky üýtgeşmeleri girizmeli. Asyl faýlyň ätiýaçlyk nusgasyndan başlaň, soňra redaktirlemek üçin açyň.

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

16. Müşderilere göçürmäni maglumatlary okamak üçin birikdirmäge rugsat bermek üçin, göçürme IP adresini baglanyşyk direktiwasyna goşuň.

# replica1
bind 127.0.0.1 10.42.0.21

# replica2
bind 127.0.0.1 10.42.0.34

17. Redis mysalyny nusga hökmünde düzmek üçin, replikof parametrini ulanyň we baş düwüniň IP adresini (ýa-da host ady) we porty baha hökmünde belläň.

replicaof 10.42.0.247 6379

18. Ondan soň, baş mysalymyz parol bilen goralýanlygy sebäpli, masterauth parametrini ulanyp, paroly ussa tassyklamaga mümkinçilik bermek üçin göçürme konfigurasiýasynda bellemeli.

masterauth [email 

19. Mundan başga-da, bir nusga ussasy bilen baglanyşygyny ýitirende ýa-da köpeltmek dowam etdirilende, göçürme müşderiniň isleglerine jogap bermek üçin düzülendir, ähtimal\köne maglumatlar bilen. Butöne ilkinji sinhronlaşma bolsa, onda Maglumat toplumy diňe boş bolup biler.Bu hereket, replika-service-stale-data parametri tarapyndan dolandyrylýar.

Redis 2.6 deslapky göçürmeler diňe okalýanlygy sebäpli, diňe göçürme-okalýan parametr bilen dolandyrylýar. Programma zerurlyklaryňyza laýyk gelýän beýleki göçürme konfigurasiýa düzedişlerini edip bilersiňiz.

20. thehli zerur üýtgeşmeler girizeniňizden soň, ähli göçürmelerde Redis hyzmatyny täzeden açyň.

# systemctl restart redis

21. Şeýle hem, ussa we müşderilerden göçürmelere birikmek we gorag diwarynyň düzgünlerini täzeden açmak üçin diwar diwaryndaky 6379 porty açyň.

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

4-nji ädim: Master-replika köpeltmek ýagdaýyny barlaň

22. Master-replika köpeltmek konfigurasiýasy gutaransoň, gurnalan aşakdaky ýaly gowy işleýändigini barlap bileris.

Ussatda aşakdaky buýruklary işlediň.

# redis-cli
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> info replication

23. Şeýle hem, göçürmeleriň/gullaryň göçürme ýagdaýyny aşakdaky ýaly barlaň.

# redis-cli
127.0.0.1:6379> info replication

23. Indi esasy nusgadaky esasy bahany sazlamak arkaly köpeltmäni synap göreliň we maglumatlaryň göçürmelere sinhronlanandygyny barlap göreliň.

Ussadyň üstünde:

# redis-cli
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379> set domain 'linux-console.net'

24. Soňra maglumatlaryň görkezilişi ýaly nusgalar bilen sinhronlanandygyny ýa-da ýokdugyny barlaň.

# redis-cli
127.0.0.1:6379> get domain

25. Redis-de esasy nusga, ýeterlik göçürme ýok bolsa, belli bir sekuntda käbir ýazgylary ýitirmek howpuny çäklendirýän aýratynlyk bar.

Bu, ussanyň degişlilikde N-göçürme-ýazmak we min-replika-max-lag opsiýalary tarapyndan dolandyrylýan N sekuntdan az bolsa ýa-da M sekuntdan az bolsa, ýazgylary kabul etmegi bes edip biljekdigini aňladýar.

Olary düzmek üçin, aşakdaky skrinshotda görkezilişi ýaly /etc/redis.conf-da gurnama talaplaryňyza görä bahalary düzüň. Bu konfigurasiýa, iň soňky pingden göçürme nusgalaryna çenli, 10 sekuntdan soň, onlaýn nusgasy 2-den az bolsa, ussat ýazgylary kabul etmegini bes eder.

min-replicas-to-write 2
min-replicas-max-lag 10

/Etc/redis.conf konfigurasiýa faýlynyň galan böleginde has köp wariant tapyp bilersiňiz we Redis resminamalarynda köpeltmek barada has giňişleýin maglumat üçin tapyp bilersiňiz.

Indiki makalamyzda, CentOS 8-de Sentinel bilen ýokary elýeterlilik üçin Redis-i nädip gurup boljakdygyny ara alyp maslahatlaşarys. Oňa çenli gulplanyp saklaň we aşakdaky teswir formamyzy ulanyp, pikirleriňizi we soraglaryňyzy paýlaşmagy ýatdan çykarmaň.