Bii o ṣe le Ṣeto idapada Redis (pẹlu Alaabo Ipo-iṣupọ) ni CentOS 8 - Apá 1


Redis (Server Dictionary Server) jẹ olokiki olokiki ati orisun ṣiṣii ti a lo ni ibigbogbo, iyara, pinpin ati lilo daradara ibi iranti-iye ibi ipamọ data iye olupin/olupin iṣeto data.

O funni ni awọn ẹya ti ọrọ ti o jẹ ki o munadoko fun ọpọlọpọ awọn ọran lilo: bi ibi ipamọ data kan, fẹlẹfẹlẹ caching, alagbata ifiranṣẹ, tabi isinyi; wulo ninu awọn ohun elo wẹẹbu, iwiregbe ati awọn ohun elo fifiranṣẹ, ere, awọn atupale data akoko gidi ati pupọ diẹ sii.

O ṣe atilẹyin awọn ẹya data rirọ, atunṣe oluwa-ẹrú asynchronous lati ṣe iwọn iṣẹ kika ati aabo lodi si pipadanu data, isomọ ẹgbẹ-alabara lati ṣe iwọn iṣẹ kikọ, awọn ọna meji ti itẹramọṣẹ fun kikọ data iranti sinu disk ni ọna kika iwapọ, iṣupọ, ati ipin. O tun ṣe ẹya awọn ailorukọ aifọwọyi fun imuṣiṣẹ wiwa giga nipasẹ Redis Sentinel, iwe afọwọkọ Lua, awọn iṣowo, ati ọpọlọpọ diẹ sii.

Jije KO SQL tabi ibi ipamọ data ti kii ṣe ibatan, Redis nfunni diẹ ninu awọn anfani iṣẹ lori awọn ọna ṣiṣe data ibile (bii MySQL/MariaDB, PostgreSQL, ati bẹbẹ lọ), nitori gbogbo data rẹ ngbe tabi wa ni fipamọ ni iranti ti o jẹ ki o rọrun ni irọrun si ohun elo kan, lakoko ti awọn apoti isura data ibile ni lati kọ gbogbo data si tabi ka lati disk tabi orisun ita.

Redis ti di yiyan ti o pọ julọ fun fifipamọ, eyiti o fun laaye fun atunlo data ti a fi pamọ (ti o fipamọ laarin aaye iranti akọkọ ohun elo) dipo ki o ma beere data nigbagbogbo fun data ti a nlo nigbagbogbo. Nitorinaa o jẹ ẹlẹgbẹ ikọja ti RDMS (Awọn ilana Isakoso data Isọdọkan) lati mu ilọsiwaju ohun elo ṣiṣẹ nikẹhin.

Ninu jara Tutorialis mẹta-apakan Redis, a yoo bo bii a ṣe le ṣeto ati lo diẹ ninu awọn ẹya pataki ti Redis eyiti o jẹ atunṣe, wiwa to ga julọ nipa lilo Redis Sentinel ati Redis Cluster, awọn nkan ni:

Itọsọna yii fihan bii o ṣe le Ṣeto idapada Redis (pẹlu Alaabo Ipo-iṣupọ) ni CentOS 8 Linux, pẹlu bii o ṣe le fi Redis sori ẹrọ, tunto oluwa ati awọn ẹda, ati idanwo ẹda naa.

Pataki: Apọpọ Redis (ie Iṣupọ Idapọ) pẹlu ipo iṣupọ alaabo ni ẹgbẹ ipade kan (fun apẹẹrẹ oluwa ati awọn ẹda ọkan tabi meji) awọn iṣupọ Redis kan pẹlu ipo iṣupọ ṣiṣẹ le ni awọn ẹgbẹ ipade meji tabi diẹ sii (fun apẹẹrẹ awọn oluwa mẹta ọkọọkan ni awọn ẹrú tabi meji).

  1. Awọn olupin pẹlu fifi sori CentOS 8

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

Pẹlu iṣeto ti o wa loke (eyiti o ni kika kan/kọkọ akọkọ/node node ati 2 awọn kika ajọra kika-nikan), a ni ẹgbẹ ipade kan ti o ni gbogbo data iṣupọ ni oju ipade kọọkan. Ni kete ti ẹrú kan ba sopọ si oluwa kan, o gba ẹda akọkọ ti ibi ipamọ data kikun ati eyikeyi data ti o ti wa tẹlẹ lori ẹrú naa yoo di asonu.

Yato si, alabara kan le kọ nikan si oluwa ṣugbọn ka lati eyikeyi oju ipade ninu iṣupọ. Ati pe bi a ṣe n ṣe kikọ lori oluwa, wọn ṣe ikede si gbogbo awọn ẹrú ti o ni asopọ fun mimu awọn datasets ẹrú dojuiwọn ni akoko gidi.

Igbesẹ 1: Fifi Redis sori CentOS 8

1. Lati bẹrẹ pẹlu, wọle si gbogbo awọn apa CentOS 8 nipasẹ SSH, lẹhinna fi package Redis sori gbogbo awọn apa (oluwa ati awọn ẹda) nipa lilo oluṣakoso package DNF bi o ti han.

# dnf install @redis

2. Lẹhin ipari ti fifi sori package Redis, bẹrẹ iṣẹ Redis, jẹ ki o bẹrẹ laifọwọyi ni gbogbo bata bata ẹrọ ki o ṣayẹwo boya o ti wa ni oke ati ṣiṣe bi atẹle.

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

3. O tun le jẹrisi pe olupin Redis ti wa ni oke ati ṣiṣe nipasẹ ṣayẹwo awọn ibudo tẹtisi lilo aṣẹ ss, bi atẹle.

# ss -ltpn | grep redis-server

Igbese 2: Tito leto Redis Master Server

4. Redis ti wa ni tunto nipa lilo faili iṣeto /etc/redis.conf, faili apẹẹrẹ apẹẹrẹ ti ara ẹni ni akọsilẹ ara ẹni. Ni akọkọ, ṣẹda afẹyinti ti faili atilẹba, lẹhinna ṣii fun ṣiṣatunkọ nipa lilo olootu laini aṣẹ ti o yan.

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

5. Ni aiyipada, a tunto apẹẹrẹ Redis lati tẹtisi ati gba awọn isopọ lori wiwo loopback, ni lilo itọnisọna abuda. Lati ṣe ibaraẹnisọrọ pẹlu awọn ẹda, oluwa yẹ ki o wa ni tunto lati tẹtisi lori adiresi loopback IPv4 ati adiresi IP IP rẹ ie 10.42.0.247.

bind 127.0.0.1 10.42.0.247

6. Itele, ṣeto ipilẹ ipo-idaabobo si rara lati gba ibaraẹnisọrọ laaye pẹlu awọn ẹda bi o ti han.

protected-mode no

Pẹlupẹlu, Redis tẹtisi lori ibudo 6379 eyiti o ṣeto nipa lilo itọsọna ibudo . Eyi ni ibudo data fun sisọ pẹlu awọn ohun elo API tabi awọn alabara CLI.

port 6379

7. Lati ni aabo awọn ibaraẹnisọrọ ẹda-ajọra yiyan, a le ṣe aabo oluwa nipa lilo itọnisọna to beere, nitorinaa awọn alabara/awọn ẹda ni lati fun ni ọrọigbaniwọle idanimọ ṣaaju ṣiṣe eyikeyi awọn ofin tabi bẹrẹ ilana amuṣiṣẹpọ ẹda, bibẹkọ ti oluwa yoo kọ ibeere alabara/ajọra (ranti lati ṣeto ọrọ igbaniwọle to ni aabo).

A yoo lo aṣayan atẹle fun awọn idi ifihan, lati fihan bi o ṣe n ṣiṣẹ.

requirepass  [email 

8. Pẹlupẹlu, awọn iwe-akọọlẹ Redis wa ni fipamọ ni faili /var/log/redis/redis.log, eyi ni a ṣeto nipa lilo itọsọna logfile ati ipele verbosity olupin aiyipada jẹ akiyesi, ṣalaye nipa lilo paramita loglevel.

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

9. Niwọn igba ti eto jẹ eto aiyipada ati oluṣakoso iṣẹ ni CentOS 8, o le tunto Redis lati baṣepọ pẹlu igi abojuto eto nipa ṣiṣeto paramita ti a ṣakoso si siseto.

supervised systemd

10. Lẹhin ṣiṣe gbogbo awọn atunto ti o yẹ, fi faili pamọ ki o pa. Lẹhinna tun bẹrẹ iṣẹ Redis lati lo awọn ayipada tuntun.

# systemctl daemon-reload
# systemctl restart redis

11. Lati wọle si olupin Redis, a nilo lati lo redis-cli (wiwo ila ila aṣẹ si olupin-redis). Nipa aiyipada, o sopọ si olupin lori localhost (ni ibudo 127.0.0.1 6379). Akiyesi pe nitori a ti ni ifipamo olupin naa lati ọdọ awọn alabara nipa lilo ọrọ igbaniwọle kan, ṣiṣe aṣẹ ṣaaju iṣaaju yẹ ki o kuna.

Lo pipaṣẹ auth lati fi ranse ọrọ igbaniwọle idanimọ bi o ṣe han ninu sikirinifoto atẹle.

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

12. Lati sopọ si ẹda kan (lẹhin atunto wọn bi a ti ṣapejuwe rẹ ni apakan ti o tẹle), lo awọn aṣayan -h ati -p lati ṣafihan iru adiresi IP ajọra/orukọ olupinle ati ibudo ni atẹle (kii ṣe ibudo 6379 naa gbọdọ wa ni sisi ni ogiriina ajọra).

# redis-cli -h 10.42.0.21 -p 6379

13. Nigbamii, ṣii ibudo data olupin Redis ni ogiriina lati gba awọn isopọ inbound si oluwa, ati lẹhinna tun gbe awọn ofin ogiri naa pada pẹlu lilo aṣẹ ogiri-cmd bi o ti han.

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

Igbesẹ 3: Tito leto Awọn ẹda Redis/Awọn olupin Ẹru

14. Lati yara ṣeto apeere Redis kan gẹgẹbi ẹda lori fifo, lo iwulo redis-cli ki o pe pipaṣẹ REPLICAOF bi o ti han.

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

15. Lati ṣe asopọ isodipupo kan, o nilo lati ṣe awọn ayipada wọnyi ni faili iṣeto. Bẹrẹ nipa ṣe afẹyinti faili atilẹba, lẹhinna ṣii fun ṣiṣatunkọ.

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

16. Lati gba awọn alabara laaye lati sopọ si ẹda naa lati ka data, ṣafikun adiresi IP ajọra si itọsọna abuda.

# replica1
bind 127.0.0.1 10.42.0.21

# replica2
bind 127.0.0.1 10.42.0.34

17. Lati tunto apeere Redis bi ẹda kan, lo paramita ẹda naa ki o ṣeto adiresi IP oju ipade ti oluwa (tabi orukọ olupin) ati ibudo bi awọn iye.

replicaof 10.42.0.247 6379

18. Nigbamii ti, niwọn igba ti a ti daabobo apeere oluwa wa nipa lilo ọrọ igbaniwọle kan, a nilo lati ṣeto ọrọ igbaniwọle ninu iṣeto ẹda lati jẹ ki o jẹrisi si oluwa, ni lilo paramita masterauth.

masterauth [email 

19. Ni afikun, nigbati ẹda kan ba padanu asopọ rẹ pẹlu oluwa, tabi nigbati ẹda naa ba n lọ lọwọ, ẹda naa ni a tunto lati fesi si awọn ibeere alabara, o ṣee ṣe pẹlu data\"ti ọjọ ko to." Ṣugbọn fun ti o ba jẹ amuṣiṣẹpọ akọkọ, lẹhinna ṣeto data le kan ṣofo. Ihuwasi yii ni akoso nipasẹ apọpọ-serve-stale-data paramita.

Ati pe, niwọn igba ti Redis 2.6 nipasẹ awọn ẹda aiyipada jẹ kika-nikan, eyi ni iṣakoso nipasẹ pilẹṣẹ kika-ka-nikan. O le ṣe awọn atunṣe atunto ajọra miiran lati ba awọn iwulo ohun elo rẹ mu.

20. Ni kete ti o ti ṣe gbogbo awọn ayipada ti o yẹ, tun bẹrẹ iṣẹ Redis lori gbogbo awọn ẹda.

# systemctl restart redis

21. Pẹlupẹlu, ṣii ibudo 6379 ni ogiriina lati gba awọn isopọ lati ọdọ oluwa ati awọn alabara si awọn ẹda, ati tun gbe awọn ofin ogiri naa pada.

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

Igbesẹ 4: Ṣayẹwo Ipo Idapọ Titunto si-ajọra

22. Ni kete ti iṣeto atunda oluwa-ajọra ti pari, a le ṣayẹwo ti ṣeto naa ba n ṣiṣẹ daradara bi atẹle.

Lori oluwa, ṣiṣe awọn ofin wọnyi.

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

23. Pẹlupẹlu, ṣayẹwo ipo ẹda lori awọn ẹda/awọn ẹrú gẹgẹbi atẹle.

# redis-cli
127.0.0.1:6379> info replication

23. Nisisiyi ẹ jẹ ki idanwo idanwo naa nipasẹ awọn eto bọtini-iye kan ninu apeere oluwa ki o ṣayẹwo boya a ti mu data pọpọ si awọn ẹda naa.

Lori oluwa, ṣe eyi:

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

24. Lẹhinna ṣayẹwo ti o ba ti mu data pọpọ si awọn ẹda gẹgẹ bi o ti han.

# redis-cli
127.0.0.1:6379> get domain

25. Redis ni ẹya ti o jẹ ki apeere oluwa kan lati ṣe idiwọn eewu ti sisọnu diẹ ninu awọn kikọ silẹ bi ko ba si awọn ẹda ti o to wa, si nọmba kan ti awọn iṣẹju-aaya ti o wa.

Eyi tumọ si pe oluwa kan le dawọ gbigba awọn kikọ silẹ ti o ba kere ju awọn ẹda N ti a sopọ, nini aisun kere tabi dogba ju awọn aaya M, bi iṣakoso nipasẹ awọn aṣayan min-replicas-lati-kọ ati min-replicas-max-lag awọn lẹsẹsẹ.

Lati ṣeto wọn, ṣoki wọn ki o ṣeto awọn iye ni ibamu si awọn ibeere iṣeto rẹ ni /etc/redis.conf, bi o ṣe han ninu sikirinifoto atẹle. Iṣeto yii tumọ si pe, lati ping ti o kẹhin si awọn ẹda, lẹhin awọn aaya 10, ti o ba kere ju awọn ẹda 2 lori ayelujara, oluwa yoo da gbigba awọn kikọ silẹ.

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

O le wa awọn aṣayan diẹ sii ni iyoku faili iṣeto /etc/redis.conf ati fun alaye diẹ sii ka nipa atunse ninu iwe Redis.

Ninu nkan ti nbọ, a yoo bo bii a ṣe le ṣeto Redis fun wiwa to gaju pẹlu Sentinel ni CentOS 8. Titi di igba naa, wa ni titiipa ki o ranti lati pin awọn akọọlẹ rẹ ati awọn ibeere nipa lilo fọọmu asọye wa ni isalẹ wa fun ọ lati de ọdọ wa.