![Samsung Galaxy S8 lansat! Specificații complete, data lansării și prețul](/f/57f829f7c408a64a28f34b805029828f.jpg?width=100&height=100)
Redis (Server de dicționare la distanță) este un server open source foarte popular și utilizat pe scară largă, rapid, distribuit și eficient în baza de date cheie-valoare / structură de date în memorie.
Oferă un set bogat de caracteristici care îl fac eficient pentru o gamă largă de cazuri de utilizare: ca bază de date, strat de cache, broker de mesaje sau coadă; aplicabil în aplicații web, aplicații de chat și mesagerie, jocuri, analize de date în timp real și multe altele.
Suportă structuri de date flexibile, replicare asincronă master-slave pentru a scala performanța citirii și a proteja împotriva pierderii de date, din partea clientului sharding pentru a scala performanța de scriere, două forme de persistență pentru scrierea datelor în memorie pe disc într-un format compact, clustering și partiționare. De asemenea, dispune de reluări automate de erori pentru o implementare de înaltă disponibilitate prin Redis Sentinel, Lua scripting, tranzacții, si multe altele.
A fi FĂRĂ SQL sau bază de date non-relațională,
Redis oferă unele avantaje de performanță față de sistemele tradiționale de baze de date (cum ar fi MySQL / MariaDB, PostgreSQL, etc.), deoarece toate datele sale se află sau sunt stocate în memorie, făcându-le ușor accesibile pentru un aplicație, în timp ce bazele de date tradiționale trebuie să scrie toate datele sau să le citească de pe disc sau dintr-un dispozitiv extern sursă.Redis a devenit o alegere din ce în ce mai răspândită pentru stocarea în cache, care permite reutilizarea datelor cache (stocate în spațiul de memorie principal al unei aplicații), mai degrabă decât interogarea întotdeauna frecventă a unei baze de date date utilizate. Deci este un însoțitor fantastic al RDMS (Sisteme de gestionare a bazelor de date relaționale) pentru a îmbunătăți în cele din urmă performanța aplicației.
În această parte din trei Redis serii de tutoriale, vom prezenta cum să configurați și să utilizați unele dintre caracteristicile cheie ale Redis, care sunt replicarea, utilizarea cu disponibilitate ridicată Redis Sentinel și Redis Cluster, articolele sunt:
Partea 1: Cum se configurează replicarea Redis (cu modul Cluster dezactivat) în CentOS 8
Acest ghid arată cum se configurează Redis replicare (cu Mod Cluster dezactivat) în CentOS 8 Linux, inclusiv cum se instalează Redis, se configurează masterul și replicile și se testează replicarea.
Important: A Redis Cluster (adică a Cluster de replicare) cu modul cluster dezactivat are un singur grup de noduri (de ex. a maestru și una sau două replici) în care un cluster Redis cu modul cluster activat poate consta din două sau mai multe grupuri de noduri (de exemplu, trei maeștri având fiecare sclavi sau doi).
Redis Master Server: 10.42.0.247. Redis Replica1 / Slave1: 10.42.0.21. Redis Replica2 / Slave2: 10.42.0.34.
Cu setarea de mai sus (care are un singur nod primar / master de citire / scriere și 2 noduri de replică numai în citire), avem un singur grup de noduri care conține toate datele clusterului în fiecare nod. Odată ce un sclav se conectează la un maestru, acesta primește o copie inițială a bazei de date complete și orice date care existau anterior pe sclav vor fi eliminate.
În plus, un client poate scrie numai la master, dar poate citi din orice nod din cluster. Și, pe măsură ce scrierile sunt efectuate pe master, acestea s-au propagat către toți sclavii conectați pentru actualizarea seturilor de date slave în timp real.
1. Pentru început, conectați-vă la toate fișierele CentOS 8 noduri prin SSH, apoi instalați fișierul Redis pachet pe toate nodurile (master și replici) folosind Manager de pachete DNF așa cum se arată.
# dnf instalează @redis.
2. La finalizarea Redis instalarea pachetului, porniți Redis service, activați-l pentru a porni automat la fiecare pornire a sistemului și verificați dacă funcționează după cum urmează.
# systemctl începe redis. # systemctl activează redis. # systemctl status redis.
3. De asemenea, puteți confirma că Redis serverul funcționează verificând porturile de ascultare folosind comanda ss, după cum urmează.
# ss -ltpn | grep redis-server.
4. Redis este configurat folosind /etc/redis.conf fișier de configurare, un exemplu de fișier de configurare auto-documentat. Mai întâi, creați o copie de rezervă a fișierului original, apoi deschideți-l pentru editare folosind fișierul editor de linie de comandă la alegere.
# cp /etc/redis.conf /etc/redis.conf.org. # vi /etc/redis.conf.
5. În mod implicit, a Redis instanța este configurată pentru a asculta și accepta conexiuni pe loopback interfață, utilizând directiva bind. Pentru a comunica cu replicile, masterul ar trebui să fie configurat pentru a asculta pe IPv4 adresa loopback și adresa IP LAN a acesteia, adică 10.42.0.247.
legați 127.0.0.1 10.42.0.247.
6. Apoi, setați parametrul de mod protejat la Nu
pentru a permite comunicarea cu replicile așa cum se arată.
modul protejat nr.
De asemenea, Redis ascultă în port 6379 care este setat folosind port
directivă. Acesta este portul de date pentru comunicarea cu API-urile aplicației sau clienții CLI.
portul 6379.
7. Pentru a securiza opțional fișierul master-replica comunicări, putem proteja masterul folosind requirepass directivă, astfel încât clienții / replicile să emită o parolă de autentificare înainte de a rula orice comandă sau de a porni un procesul de sincronizare a replicării, altfel comandantul va refuza solicitarea clientului / replicii (nu uitați să setați o securitate parola).
Vom folosi următoarea opțiune în scop demonstrativ, pentru a arăta cum funcționează.
requirepass [e-mail protejat]
8. De asemenea, jurnalele Redis sunt stocate în /var/log/redis/redis.log fișier, acesta este setat utilizând fișierul fișier jurnal directivă și nivelul implicit de verbozitate al serverului este înștiințare, definit folosind loglevel parametru.
notificare loglevel. logfile /var/log/redis/redis.log.
9. De cand systemd este sistemul implicit și managerul de servicii din CentOS 8, puteți configura Redis a interacționa cu systemd arborele de supraveghere prin setarea supravegheat parametru pentru systemd.
sistem supervizatd.
10. După ce ați făcut toate configurațiile necesare, salvați fișierul și închideți-l. Apoi reporniți Redis pentru a aplica noile modificări.
# systemctl daemon-reload. # systemctl restart redis.
11. Pentru a accesa fișierul Redis server, trebuie să folosim redis-cli (o interfață de linie de comandă către redis-server). În mod implicit, se conectează la serverul de pe gazdă locală (la 127.0.0.1 port 6379). Rețineți că, deoarece serverul este securizat de clienții care utilizează o parolă, rularea unei comenzi înainte de autentificare ar trebui să eșueze.
Folosește autentificare comanda pentru a furniza parola de autentificare așa cum se arată în următoarea captură de ecran.
# redis-cli. 127.0.0.1:6379> lista de clienți. 127.0.0.1:6379> AUTOR [e-mail protejat]
127.0.0.1:6379> lista de clienți.
12. Pentru a vă conecta la un replica (după ce le-ați configurat așa cum este descris în secțiunea următoare), utilizați -h
și -p
opțiuni pentru a specifica adresa IP / numele gazdei și respectiv portul (nu acel port 6379 trebuie să fie deschis în firewall-ul replicii).
# redis-cli -h 10.42.0.21 -p 6379.
13. Apoi, deschideți fișierul Redis portul de date al serverului din firewall pentru a permite conexiunile de intrare către master și apoi reîncărcați regulile firewall-ului folosind comanda firewall-cmd așa cum se arată.
# firewall-cmd --zone = public --permanent --add-port = 6379 / tcp # firewall-cmd --reload.
14. Pentru a seta rapid un Redis ca o replică din mers, folosiți redis-cli utilitar și apelați la REPLICAOF comanda așa cum se arată.
# redis-cli replică a 10.42.0.247 6379. SAU. # redis-cli. 127.0.0.1:6379> REPLICAOF 10.42.0.247 6379.
15. Pentru a face o conexiune de replicare permanentă, trebuie să faceți următoarele modificări în fișierul de configurare. Începeți făcând o copie de rezervă a fișierului original, apoi deschideți-l pentru editare.
# cp /etc/redis.conf /etc/redis.conf.org. # vi /etc/redis.conf.
16. Pentru a permite clienților să se conecteze la replică pentru a citi date, adăugați adresa IP a replicii la directiva de legare.
# replica1. legați 127.0.0.1 10.42.0.21 # replica2. legați 127.0.0.1 10.42.0.34.
17. Pentru a configura o instanță Redis ca fișier replica, folosește replicaof parametru și setați adresa IP (sau numele gazdei) și portul nodului principal ca valori.
replică a 10.42.0.247 6379.
18. Apoi, deoarece instanța noastră principală este protejată folosind o parolă, trebuie să setăm parola în configurația replicii pentru a o permite să se autentifice la master, folosind masterauth parametru.
masterauth [e-mail protejat]
19. În plus, atunci când o replică își pierde conexiunea cu masterul sau când replicarea este în curs, replica este configurată pentru a răspunde la solicitările clientului, eventual cu „expirat" date. Dar pentru prima sincronizare, atunci setul de date poate fi gol. Acest comportament este controlat de replica-serve-stale-data parametru.
Și, de atunci Redis 2.6 implicit replicile sunt doar în citire, acest lucru este controlat de numai în citire replică parametru. Puteți efectua alte ajustări ale configurației replicii pentru a se potrivi nevoilor aplicației dvs.
20. După ce ați făcut toate modificările necesare, reporniți serviciul Redis pe toate replicile.
# systemctl restart redis.
21. De asemenea, deschideți portul 6379 în firewall pentru a permite conexiuni de la master și clienți la replici și reîncărcați regulile firewall-ului.
# firewall-cmd --zone = public --permanenent --add-port = 6379 / tcp. # firewall-cmd --reload.
22. Odata ce master-replica configurarea replicării este completă, putem verifica dacă setarea funcționează bine după cum urmează.
Pe master, executați următoarele comenzi.
# redis-cli. 127.0.0.1:6379> AUTOR [e-mail protejat]
127.0.0.1:6379> replicare informații.
23. De asemenea, verificați starea de replicare pe replici / sclavi după cum urmează.
# redis-cli. 127.0.0.1:6379> replicare informații.
23. Acum să testăm replicarea prin setări a valoare cheie în instanța master și verificați dacă datele sunt sincronizate cu replicile.
Pe maestru, faceți acest lucru:
# redis-cli. 127.0.0.1:6379> AUTOR [e-mail protejat]
127.0.0.1:6379> setați domeniul „www.tecmint.com”
24. Apoi verificați dacă datele au fost sincronizate cu replicile așa cum se arată.
# redis-cli. 127.0.0.1:6379> obțineți domeniul.
25. Redis are o caracteristică care permite unei instanțe master să limiteze riscul de a pierde unele scrieri în cazul în care nu sunt disponibile suficiente replici, la un număr specificat de secunde.
Aceasta înseamnă că un maestru poate înceta să accepte scrieri dacă există mai puțin de N replici conectate, având un decalaj mai mic sau egal cu M secunde, controlate de min-replici-pentru-scriere și min-replici-max-lag opțiuni, respectiv.
Pentru a le seta, decomentați-le și setați valorile în conformitate cu cerințele dvs. de configurare din /etc/redis.conf, așa cum se arată în următoarea captură de ecran. Această configurație înseamnă că, de la ultimul ping la replici, după 10 secunde, dacă există mai puțin de 2 replici online, masterul nu va mai accepta scrieri.
min-replici-pentru-scriere 2. min-replici-max-lag 10.
Puteți găsi mai multe opțiuni în restul /etc/redis.conf fișier de configurare și pentru mai multe detalii citiți despre replicare în Redis documentația.
În articolul următor, vom analiza modul de configurare Redis pentru disponibilitate ridicată cu Sentinel în CentOS 8. Până atunci, rămâneți blocat și nu uitați să ne împărtășiți întrebările și întrebările folosind formularul nostru de comentarii de mai jos, pentru a ne contacta.