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:
- 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.