Otu esi edozi ụyọkọ Redis na CentOS 8 - Akụkụ 3


Redis Cluster bụ njirimara Redis wuru n'ime nke na-akwado sharding akpaka, mmeghari na nnweta dị elu nke etinyere na mbụ site na iji Sentinels. Emebere ya maka ebumnuche abụọ dị mkpa: otu bụ kewaa dataset gị na-akpaghị aka n'etiti ọtụtụ oge na nke abụọ iji nye ụfọdụ ogo nnweta n'oge nkebi, ịga n'ihu na-arụ ọrụ mgbe oge ụfọdụ (karịsịa ndị nna ukwu) dara ma ọ bụ enweghị ike iso ọtụtụ ndị na-akpakọrịta. ọnụ na ụyọkọ.

Otú ọ dị, ụyọkọ ahụ na-akwụsị ịrụ ọrụ ma ọ bụrụ na enwere ọdịda buru ibu (dịka mgbe ọtụtụ ndị ọkachamara na-adịghị). Ọzọkwa, ọ bụrụ na nna ukwu na ohu daa n'otu oge ahụ, ụyọkọ enweghị ike ịga n'ihu na-arụ ọrụ nkịtị (ọ bụ ezie na ebe a na-arụ ọrụ bụ ịgbakwunye ọnụ ọnụ ma ọ bụ mepụta asymmetry na ụyọkọ ahụ, iji gbanwee nhazi ụyọkọ).

Dị ka akwụkwọ nchịkọta Redis si kwuo, ụyọkọ kacha nta nke na-arụ ọrụ dị ka a na-atụ anya ya chọrọ ka ọ nwee ma ọ dịkarịa ala 3 master nodes. Ma nhazi kachasị mma maka nnweta dị elu kwesịrị inwe ma ọ dịkarịa ala 6 ọnụ ọnụ na nna ukwu atọ na ndị ohu atọ, nna ukwu ọ bụla nwere. ohu.

Ihe dị mkpa: Redis Cluster nwekwara ụfọdụ oke nke enweghị nkwado maka gburugburu NATted yana ebe a na-edobe adreesị IP ma ọ bụ ọdụ ụgbọ mmiri TCP dịka ọmụmaatụ n'okpuru Docker. Na mgbakwunye, ọ bụghị ọba akwụkwọ ndị ahịa ọ bụla na-akwado ya.

Edemede a na-egosi otu esi edozi Redis Cluster (ya na Cluster-Mode Disabled) na CentOS 8. Ọ gụnyere otu esi etinye Redis, hazie ọnụ ọnụ ụyọkọ, mepụta ụyọkọ ma nwalee ọdịda nke ụyọkọ.

Mara: Maka ntuziaka a, anyị ga-eji ụdị Redis ọhụrụ/efu efu iji mee usoro ụyọkọ. Ụdị ụyọkọ agaghị arụ ọrụ na nhazi ụfọdụ emere na ntuziaka abụọ mbụ nke Redis Series anyị, ọkachasị ọ naghị arụ ọrụ mgbe a na-eji ụdị nke paramita ahụ.

  1. Sava nwere nwụnye CentOS 8

Redis Master1: 10.42.0.247
Redis Master2: 10.42.0.197
Redis Master3: 10.42.0.132

Redis Slave1: 10.42.0.200
Redis Slave2: 10.42.0.21
Redis Slave3: 10.42.0.34

Nhazi anyị nwere ọnụ ụzọ 3 na-agụ/dee ọnụ na ọnụ ọgụgụ 3 na-agụ naanị, nna ukwu ọ bụla nwere otu oyiri, yabụ shards atọ nwere data ụyọkọ niile na ọnụ nke ọ bụla. API ngwa ma ọ bụ onye ahịa CLI nwere ike idegara naanị ọnụ ọnụ nna ukwu mana gụọ ya n'ọnụ ọ bụla dị na ụyọkọ ahụ.

Kwụpụ 1: Wụnye Redis na Nodes niile

1. Banye n'ọnọdụ niile site na SSH, wee mee iwu na-esonụ iji wụnye Redis modul site na iji njikwa ngwugwu DNF dị ka egosiri.

# dnf module install redis

2. Ọzọ, malite ọrụ Redis, mee ka ọ malite na-akpaghị aka na sistemụ buut wee lelee ọnọdụ ya iji chọpụta na ọ na-agba ọsọ (chọpụta ọrụ ahụ na oge 6 niile):

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

Kwụpụ 2: Na-ahazi Usoro Redis na Nodes niile

3. Nkebi a na-akọwa otú e si ahazi ụyọkọ ụyọkọ Redis. Cheta ịrụ nhazi ebe a na ọnụ ọnụ niile.

Jiri faịlụ nhazi /etc/redis.conf hazie ihe nkesa Redis. Dị ka omume akwadoro, mepụta nkwado ndabere na mpaghara faịlụ mbụ tupu ị dezie ya site na iji nchịkọta ederede akara iwu nke nhọrọ gị.

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

4. Na-esote, chọta nhazi nhazi ndị a ma dezie ụkpụrụ ha dị ka egosiri. Paramita njikọ ahụ na-edobe interface nke ihe nkesa Redis ga-ege ntị, debe uru ya na ihe atụ LAN IP. Wepu 127.0.0.1 n'ihi na anyị ghọtara na ịhapụ ya ebe ahụ na-ebelata usoro nke ịmepụta ụyọkọ, karịsịa ọkwa nke ịbanye na ụyọkọ ahụ.

bind  10.42.0.247

Mgbe ahụ, tọọ ọnọdụ echedoro ka ọ bụrụ ọ dịghị iji kwe ka njikọ sitere na ọnọdụ ndị ọzọ dị na ụyọkọ ahụ.

protected-mode no

Oke ọdụ ụgbọ mmiri na-akọwa ọdụ ụgbọ mmiri nke ihe nkesa Redis ga-ege ntị maka njikọ, ndabara bụ 6379. Nke a bụ ọdụ data maka ịkparịta ụka na ndị ahịa.

port 6379

5. Ntọala nke ọzọ ga-eme ka ọnọdụ ụyọkọ ahụ nwee ike ịtọ ụfọdụ njirimara bara uru. Oke nwere ike ụyọkọ, mgbe atọrọ ka ọ bụrụ ee, na-eme ka ọnọdụ ụyọkọ rụọ ọrụ.

cluster-enabled yes

Na-esote, paramita ụyọkọ-config-file na-edobe aha faịlụ nhazi ụyọkọ ụyọkọ ọnụ (dịka nodes-6379.conf). Emebere faịlụ a na ndekọ ọrụ (nke ndabara bụ /var/lib/redis kọwapụtara site na iji paramita dir) na ọ bụghị onye ọrụ nwere ike dezie.

cluster-config-file nodes-6379.conf

Nhọrọ ụyọkọ bara uru na-esote bụ cluster-node-timeout, a na-eji ya ịtọ oge kachasị na milliseconds ihe atụ enweghị ike ịdị ya ka atụle ya na ọnọdụ ọdịda. Uru nke 15000 dabara na sekọnd iri na ise.

cluster-node-timeout 15000

6. Anyị kwesịkwara ime ka Redis nọgidesiri ike na diski. Anyị nwere ike iji otu n'ime ụdị nnọgidesi ike, ya bụ Append Only File (AOF): ọ na-edekọ (na faịlụ appendonly.aof emebere n'okpuru akwụkwọ ndekọ aha) ọrụ ide ihe ọ bụla nke sava nwetara nke ọma. A ga-egwu data ahụ n'oge mmalite ihe nkesa iji wughachi ntọala data mbụ.

Iji mee ya, tọọ paramita appenddonly ka ọ bụrụ ee.

appendonly yes

7. Mgbe ịmechara mgbanwe niile, malitegharịa ọrụ Redis na ọnụ ọnụ niile iji tinye mgbanwe ndị na-adịbeghị anya.

# systemctl restart redis

8. N'ebe a, oghere ụyọkọ ọ bụla kwesịrị inwe ID ugbu a. Ị nwere ike ịlele nke a na logfile dị na /var/log/redis/redis.log.

# cat /var/log/redis/redis.log

9. Ọzọ, mepee ọdụ ụgbọ mmiri 6397 na 16379 na ihe niile. A na-eji ọdụ ụgbọ mmiri emechaa maka ụgbọ ala ụyọkọ (ọwa nzikọrịta ozi ọnụ na ọnụ na-eji usoro ọnụọgụ abụọ). Nke a bụ isi ihe achọrọ maka njikọ TCP ụyọkọ Redis.

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

Kwụpụ 3: Mepụta ụyọkọ Redis

10. Iji mepụta ụyọkọ ahụ, jiri onye ahịa redis-cli Command-line dị ka ndị a. The --cluster create na-enyere ike ịmepụta ụyọkọ na --cluster-replicas 1 pụtara ịmepụta otu oyiri kwa nna ukwu.

Maka nhazi anyị nke nwere oghere 6, anyị ga-enwe nna ukwu 3 na ndị ohu 3.

Rịba ama na a ga-ewere ọnụ ụzọ 6 nke mbụ dị ka nna ukwu (M) na atọ ndị na-esote a ga-ewere dị ka ohu (S) . Ohu nke mbụ ya bụ 10.42.0.200:6379 na-emegharị nna ukwu mbụ ya bụ 10.42.0.247:6379, ohu nke abụọ na-emegharị nna ukwu nke abụọ, n'usoro ahụ.

A haziri iwu na-esonụ n'ụzọ ga-esi na ya pụta ga-anọchi anya nhazi ezi uche dị n'elu.

# redis-cli --cluster create 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6379 10.42.0.34:6379 --cluster-replicas 1

11. Ozugbo ịmepụta ụyọkọ ahụ na-aga nke ọma, gbanye iwu na-esonụ na onye ọ bụla ọbịa (kpọpụta adreesị IP ya site na iji -h ọkọlọtọ) iji depụta ọnụ ọgụgụ ụyọkọ niile.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes

Ị ga-enwe ike ịhụ ọnụ ọnụ ụyọkọ niile, na ndị ohu na-egosi nna ha ukwu, dị ka egosiri na nseta ihuenyo na-esonụ.

Ubi dị iche iche dị n'usoro a: ID node, adreesị IP: ọdụ ụgbọ mmiri, ọkọlọtọ, ping ikpeazụ zitere, ikpeazụ pong natara, oge nhazi, njikọ-steeti, oghere (maka nna ukwu).

Kwụpụ 4: Nnwale Redis Cluster Failover

12. N'akụkụ a, anyị ga-egosi otu esi anwale ụyọkọ ọdịda. Nke mbụ, ka anyị leba anya na ndị nna ukwu.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Ọzọkwa, rịba ama ndị ohu Redis.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

13. Ọzọ, ka anyị kwụsị ọrụ Redis n'otu n'ime oghere ndị isi dịka 10.42.0.197 wee lelee ọnụ ọgụgụ isi niile na ụyọkọ.

# systemctl stop redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master

Site na nseta ihuenyo na-esonụ, ị ga-ahụ na ọnụ 10.42.0.197:6367 na-ada ada na ohu ya 10.42.0.21:6379 akwalitela ka ọ bụrụ ọkwa ukwu.

14. Ugbu a, ka anyị malite ọrụ Redis ọzọ na ọnụ ụzọ dara ada wee lelee ndị nna ukwu niile na ụyọkọ.

# systemctl start redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Ọzọkwa, lelee ụyọkọ ohu iji gosi na nna ukwu dara ada bụ ohu ugbu a.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

Kwụpụ 5: Na-anwale ntụgharị data gafere ụyọkọ Redis

15. Nkebi ikpeazụ a na-akọwa otu esi enyocha ngbanwe data ụyọkọ. Anyị ga-emepụta igodo na uru na otu n'ime ndị nna ukwu, wee gbalịa ịgụ ya site na ụyọkọ ụyọkọ niile dị ka ndị a. Jiri mgba ọkụ -c iji mee ka nkwado ụyọkọ dị n'okpuru redis-cli utility wee nweta data na ọnọdụ ụyọkọ.

# redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
# redis-cli -c -h 10.42.0.247 -p 6379 get name
# redis-cli -c -h 10.42.0.21 -p 6379 get name
# redis-cli -c -h 10.42.0.132 -p 6379 get name
# redis-cli -c -h 10.42.0.200 -p 6379 get name
# redis-cli -c -h 10.42.0.197 -p 6379 get name
# redis-cli -c -h 10.42.0.34 -p 6379 get name

Ahịrị ala bụ Redis Cluster bụ ụzọ kachasị amasị iji nweta sharding akpaka, mmeghari, na nnweta dị elu. Enwere ọtụtụ usoro nhazi ndị ọzọ edekọtara nke ọma na faịlụ /etc/redis.conf ndị ọzọ, ị nwere ike ịchọta ozi ndị ọzọ na akwụkwọ gọọmentị: Redis cluster tutorial na Redis cluster specification.

Nke a na-eduga anyị na njedebe nke usoro nkuzi Redis akụkụ atọ. Ụdị nzaghachi dị n'okpuru nwere ike iji biputere ajụjụ ma ọ bụ kwuo.