Weboldal keresés

A Redis-replikáció beállítása (a fürt mód letiltásával) a CentOS 8-ban – 1. rész


A Redis (Remote Dictionary Server) egy nagyon népszerű és széles körben használt nyílt forráskódú, gyors, elosztott és hatékony, memórián belüli kulcsérték-adatbázis-/adatstruktúra-kiszolgáló.

Funkciók gazdag készletét kínálja, amelyek a felhasználási esetek széles körére teszik hatékonyan: adatbázisként, gyorsítótárazási rétegként, üzenetközvetítőként vagy várakozási sorként; alkalmazható webes alkalmazásokban, chat- és üzenetküldő alkalmazásokban, játékokban, valós idejű adatelemzésben és még sok másban.

Támogatja a rugalmas adatstruktúrákat, a master-slave aszinkron replikációt az olvasási teljesítmény skálázásához és az adatvesztés elleni védelemhez, a kliensoldali shardingot az írási teljesítmény skálázásához, a fennmaradás két formáját a memóriában lévő adatok lemezre írásához kompakt formátumban, a fürtözést és particionálás. Automatikus feladatátvételeket is tartalmaz a magas rendelkezésre állású üzembe helyezés érdekében a Redis Sentinel, a Lua szkriptelés, a tranzakciók és még sok más segítségével.

Mivel NO SQL vagy nem relációs adatbázis, a Redis bizonyos teljesítményelőnyt kínál a hagyományos adatbázisrendszerekhez (például MySQL/MariaDB, ) képest. PostgreSQL stb.), mert minden adata a memóriában van vagy tárolva van, így könnyen elérhető egy alkalmazás számára, míg a hagyományos adatbázisoknak minden adatot lemezre vagy külső forrásból kell kiírniuk, vagy onnan olvasni.

A Redis egyre elterjedtebb gyorsítótárazási lehetőséggé vált, amely lehetővé teszi a gyorsítótárazott adatok (az alkalmazás fő memóriaterületén tárolt) újrafelhasználását ahelyett, hogy mindig lekérdezzenek egy adatbázist a gyakran használt adatok után. Tehát az RDMS (Relational Database Management Systems) fantasztikus társa, amely végső soron javítja az alkalmazások teljesítményét.

Ebben a háromrészes Redis oktatóanyag-sorozatban bemutatjuk, hogyan kell beállítani és használni a Redis néhány kulcsfontosságú funkcióját, mint például a replikáció, a magas rendelkezésre állás a Redis Sentinel és a segítségével. > Redis Cluster, a cikkek a következők:

Ez az útmutató bemutatja, hogyan állíthatja be a Redis-replikációt (a Cluster Mode Disabled mellett) CentOS 8 Linux rendszerben, beleértve a Redis telepítését és a fő konfigurálását. és replikákat, és tesztelje a replikációt.

Fontos: Egy Redis-fürtnek (azaz egy replikációs fürtnek), amelynél a fürt mód le van tiltva, egyetlen csomópontcsoportja van ( például egy master és egy vagy két replika), ahol a Redis-fürt engedélyezett fürtmóddal két vagy több csomópontcsoportból állhat (például három mesterből, amelyek mindegyike szolgákkal vagy kettővel rendelkezik).

Előfeltételek:

  1. Szerverek CentOS 8 telepítéssel

Tesztkörnyezet beállítása

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

A fenti beállítással (amelynek egyetlen olvasási/írási elsődleges/fő csomópontja és 2 csak olvasható replikacsomópontja van) egyetlen csomópontcsoportunk van, amely a fürt összes adatát tartalmazza az egyes csomópontokban. Amint egy slave csatlakozik a masterhez, megkapja a teljes adatbázis kezdeti másolatát, és a slave-en korábban létező adatok el lesznek vetve.

Ezenkívül egy kliens csak a mesternek írhat, de a fürt bármely csomópontjáról olvashat. És ahogy az írás a mesteren történik, az összes csatlakoztatott slave-hez eljuttatják a slave adatkészletek valós idejű frissítését.

1. lépés: A Redis telepítése a CentOS 8 rendszerre

1. Kezdésként jelentkezzen be az összes CentOS 8 csomópontba SSH-n keresztül, majd telepítse a Redis csomagot az összes csomópontra (fő és replika) ) a DNF csomagkezelő használatával az ábrán látható módon.


dnf install @redis

2. A Redis csomag telepítésének befejezése után indítsa el a Redis szolgáltatást, engedélyezze, hogy minden rendszerindításkor automatikusan elinduljon, és ellenőrizze, hogy az a következőképpen működik.

systemctl start redis
systemctl enable redis
systemctl status redis

3. Azt is megerősítheti, hogy a Redis szerver működik és működik, ha az ss paranccsal ellenőrzi a figyelő portokat, az alábbiak szerint.

ss -ltpn | grep redis-server

2. lépés: A Redis Master Server konfigurálása

4. A Redis az /etc/redis.conf konfigurációs fájl, egy öndokumentált példa konfigurációs fájl használatával van konfigurálva. Először készítsen biztonsági másolatot az eredeti fájlról, majd nyissa meg szerkesztésre a választott parancssori szerkesztővel.

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

5. Alapértelmezés szerint a Redis példány úgy van beállítva, hogy figyelje és fogadja a kapcsolatokat a visszahurkolt felületen a bind direktíva használatával. A replikákkal való kommunikációhoz a mestert úgy kell beállítani, hogy figyeljen az IPv4 visszahurkolási címre és a LAN IP-címére, azaz a 10.42.0.247re.

bind 127.0.0.1 10.42.0.247

6. Ezután állítsa a védett mód paraméterét no értékre, hogy engedélyezze a kommunikációt a replikákkal az ábra szerint.

protected-mode no

Ezenkívül a Redis a 6379 porton figyel, amely a port direktívával van beállítva. Ez az adatport az alkalmazás API-kkal vagy CLI-kliensekkel való kommunikációhoz.

port 6379

7. A master-replica kommunikáció opcionális védelméhez a requirepass direktíva segítségével védhetjük a mastert, így az ügyfeleknek/replikáknak parancsok futtatása vagy replikációs szinkronizálási folyamat megkezdése előtt adjon ki hitelesítési jelszót, ellenkező esetben a mester elutasítja az ügyfél/replika kérést (ne felejtse el beállítani a biztonságos jelszót).

A következő opciót demonstrációs célokra használjuk, hogy megmutassuk, hogyan működik.

requirepass  Securep@55Here

8. Ezenkívül a Redis-naplók a /var/log/redis/redis.log fájlban tárolódnak, ez a logfile direktíva segítségével van beállítva. és az alapértelmezett kiszolgáló részletességi szintje a notice, a loglevel paraméterrel definiálva.

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

9. Mivel a systemd az alapértelmezett rendszer- és szolgáltatáskezelő a CentOS 8 rendszerben, beállíthatja, hogy a Redis együttműködjön a systemd felügyeleti fa a supervised paraméter systemd értékre állításával.

supervised systemd

10. Az összes szükséges konfiguráció elvégzése után mentse el a fájlt, és zárja be. Ezután indítsa újra a Redis szolgáltatást az új módosítások alkalmazásához.

systemctl daemon-reload
systemctl restart redis

11. A Redis szerver eléréséhez a redis-cli parancsot kell használnunk (a redis-szerver parancssori felülete). Alapértelmezés szerint a localhost szerveren csatlakozik (a 127.0.0.1 6379-es porton). Vegye figyelembe, hogy mivel a kiszolgáló jelszóval védett az ügyfelektől, a hitelesítés előtti parancs futtatása sikertelen lehet.

Az auth paranccsal adja meg a hitelesítési jelszót az alábbi képernyőképen látható módon.

redis-cli
127.0.0.1:6379> client list
127.0.0.1:6379> AUTH Securep@55Here
127.0.0.1:6379> client list

12. Egy replikához való csatlakozáshoz (a következő szakaszban leírtak szerinti konfigurálásuk után) használja a -h és a -p beállításokat a replika IP-címének/gépnevének és portjának megadásához (nem a 6379-es portnak kell nyitva lennie a replika tűzfalában).

redis-cli -h 10.42.0.21 -p 6379

13. Ezután nyissa meg a Redis kiszolgáló adatportját a tűzfalban, hogy engedélyezze a bejövő kapcsolatokat a főkiszolgálóhoz, majd töltse be újra a tűzfalszabályokat a firewall-cmd paranccsal az ábra szerint.

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

3. lépés: A Redis Replica/Slave szerverek konfigurálása

14. Ha gyorsan be szeretne állítani egy Redis példányt replikaként, használja a redis-cli segédprogramot, és hívja a REPLICAOF parancsot az ábra szerint.

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

15. A replikációs kapcsolat állandóvá tételéhez a következő módosításokat kell végrehajtania a konfigurációs fájlban. Először készítsen biztonsági másolatot az eredeti fájlról, majd nyissa meg szerkesztésre.

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

16. Ahhoz, hogy az ügyfelek csatlakozhassanak a replikához adatok olvasásához, adja hozzá a replika IP-címét a bind direktívához.

replica1
bind 127.0.0.1 10.42.0.21

replica2
bind 127.0.0.1 10.42.0.34

Redis-példány beállítása replikaként

17. Ha egy Redis-példányt replikaként szeretne beállítani, használja a replicaof paramétert, és állítsa be a főcsomópont IP-címét (vagy gazdagépnevét) és portját értékeket.

replicaof 10.42.0.247 6379

A replika beállítása a Mesterhez való hitelesítéshez

18. Ezt követően, mivel a főpéldányunk jelszóval védett, be kell állítanunk a jelszót a replika konfigurációjában, hogy lehetővé tegyük a hitelesítést a mester számára a masterauth használatával. paraméter.

masterauth Securep@55Here

19. Ezen túlmenően, ha egy replika elveszíti kapcsolatát a fővel, vagy ha a replikáció folyamatban van, a replika úgy van beállítva, hogy válaszoljon az ügyfél kéréseire, esetleg „elavult > ” adatok. De ha ez az első szinkronizálás, akkor az adatkészlet üres lehet. Ezt a viselkedést a replica-serve-stale-data paraméter szabályozza.

És mivel a Redis 2.6 replikái alapértelmezés szerint csak olvashatók, ezt a replica-only paraméter szabályozza. Alkalmazási igényeinek megfelelően más replikakonfigurációt is módosíthat.

20. Miután elvégezte az összes szükséges módosítást, indítsa újra a Redis szolgáltatást az összes replikán.

systemctl restart redis

21. Ezenkívül nyissa meg a 6379 portot a tűzfalban, hogy lehetővé tegye a fő és az ügyfelek közötti kapcsolatokat a replikákhoz, és töltse be újra a tűzfalszabályokat.

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

4. lépés: Ellenőrizze a főreplika replikációs állapotát

22. Miután a master-replica replikációs konfiguráció befejeződött, a következőképpen ellenőrizhetjük, hogy a beállítás megfelelően működik-e.

A masteren futtassa a következő parancsokat.

redis-cli
127.0.0.1:6379> AUTH Securep@55Here
127.0.0.1:6379> info replication

23. Ezenkívül ellenőrizze a replikáció állapotát a replikákon/szolgákon az alábbiak szerint.

redis-cli
127.0.0.1:6379> info replication

23. Most teszteljük a replikációt a kulcsérték beállításával a főpéldányban, és ellenőrizzük, hogy az adatok szinkronizálva vannak-e a replikákkal.

A mesteren tegye ezt:

redis-cli
127.0.0.1:6379> AUTH Securep@55Here
127.0.0.1:6379> set domain 'linux-console.net'

24. Ezután ellenőrizze, hogy az adatok szinkronizálva lettek-e a replikákkal az ábrán látható módon.

redis-cli
127.0.0.1:6379> get domain

A főpéldány védelme bizonyos írások elvesztésének kockázatával szemben

25. A Redis rendelkezik egy olyan funkcióval, amely lehetővé teszi a főpéldány számára, hogy meghatározott számú másodpercre korlátozza bizonyos írások elvesztésének kockázatát, ha nem áll rendelkezésre elegendő replika.

Ez azt jelenti, hogy a mester leállíthatja az írások elfogadását, ha N-nél kevesebb replika van csatlakoztatva, amelyek késleltetése kisebb vagy egyenlő, mint M másodperc, a min. -replicas-to-write és min-replicas-max-lag opciók.

Beállításukhoz törölje a megjegyzéseket, és állítsa be az értékeket a beállítási követelményeknek megfelelően az /etc/redis.conf fájlban, a következő képernyőképen látható módon. Ez a konfiguráció azt jelenti, hogy az utolsó pingtől a replikákig 10 másodperc elteltével, ha 2-nél kevesebb replika van online, a mester leállítja az írások elfogadását.

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

További lehetőségeket találhat az /etc/redis.conf konfigurációs fájl többi részében, a replikációról pedig további részleteket a Redis dokumentációjában talál.

A következő cikkben bemutatjuk, hogyan állíthatja be a Redis magas rendelkezésre állását a Sentinel segítségével a CentOS 8 rendszerben. Addig is maradjon zárva, és ne felejtse el megosztani gondolatait és kérdéseit az alábbi megjegyzés űrlapunk segítségével, amellyel elérhet minket.