{"id":91846,"date":"2020-08-19T19:41:57","date_gmt":"2020-08-19T17:41:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster"},"modified":"2020-08-19T19:41:57","modified_gmt":"2020-08-19T17:41:57","slug":"o-pereezde-s-redis-na-redis-cluster","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster","title":{"rendered":"Rreth kalimit nga Redis n\u00eb Redis-cluster","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Rreth kalimit nga Redis n\u00eb Redis-cluster\" src=\"\/wp-content\/uploads\/2020\/08\/ea8bc47f73ef3b06ccfdf94d323592bf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Duke hyr\u00eb n\u00eb nj\u00eb produkt q\u00eb ka evoluar p\u00ebr m\u00eb shum\u00eb se nj\u00eb dekad\u00eb, nuk \u00ebsht\u00eb \u00e7udi q\u00eb t\u00eb takoni teknologji t\u00eb vjetra. Por \u00e7far\u00eb ndodh n\u00ebse pas gjasht\u00eb muajve duhet t\u00eb p\u00ebrballoni nj\u00eb ngarkes\u00eb q\u00eb \u00ebsht\u00eb 10 her\u00eb m\u00eb e lart\u00eb, nd\u00ebrsa kostoja e r\u00ebnieve rritet qindra her\u00eb? N\u00eb k\u00ebt\u00eb rast, ju nevojitet nj\u00eb inxhinier i shk\u00eblqyer t\u00eb ngarkesave t\u00eb m\u00ebdha. Por p\u00ebr shkak t\u00eb munges\u00ebs s\u00eb nj\u00eb t\u00eb tilli, problemi m\u00eb \u00ebsht\u00eb besuar mua. N\u00eb pjes\u00ebn e par\u00eb t\u00eb artikullit do t\u00eb tregoj se si kaluam nga Redis n\u00eb Redis-cluster, nd\u00ebrsa n\u00eb pjes\u00ebn e dyt\u00eb do t\u00eb jap k\u00ebshilla se si t\u00eb filloni t\u00eb p\u00ebrdorni klasterin dhe \u00e7far\u00eb t\u00eb keni parasysh gjat\u00eb p\u00ebrdorimit.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"vybor-tehnologii\">Zgjedhja e teknologjis\u00eb<\/h1>\n<p><\/p>\n<p>A \u00ebsht\u00eb kaq e keqe <em>Redis i ve\u00e7ant\u00eb<\/em> (redis i ve\u00e7ant\u00eb) n\u00eb konfigurimin 1 master dhe N skllev\u00ebr? Pse e quaj at\u00eb nj\u00eb teknologji t\u00eb vjet\u00ebruar?<\/p>\n<p><\/p>\n<blockquote><p>Jo, Redis nuk \u00ebsht\u00eb kaq i keq... Megjithat\u00eb, ka disa t\u00eb meta q\u00eb nuk mund t\u00eb injorohen.<\/p><\/blockquote>\n<p><\/p>\n<ul>\n<li>\n<p>S\u00eb pari, Redis nuk mb\u00ebshtet mekanizmat e rikuperimit t\u00eb fatkeq\u00ebsive pas r\u00ebnies s\u00eb masterit. P\u00ebr t\u00eb zgjidhur k\u00ebt\u00eb problem, ne p\u00ebrdor\u00ebm nj\u00eb konfigurim me kalimin automatik t\u00eb VIP-ve n\u00eb nj\u00eb master t\u00eb ri, ndryshimin e rolit t\u00eb nj\u00ebrit prej skllev\u00ebrve dhe kalimin e t\u00eb tjer\u00ebve. Ky mekaniz\u00ebm funksionoi, por nuk mund t\u00eb quhej nj\u00eb zgjidhje e besueshme. S\u00eb pari, ndodhnin alarmime t\u00eb false dhe, s\u00eb dyti, ishte nj\u00eb her\u00ebsh, dhe pas alarmimit k\u00ebrkoheshin veprime manuale p\u00ebr t\u00eb ngjitur mekanizmin.<\/p>\n<p>\n<\/li>\n<li>\n<p>S\u00eb dyti, prania e vet\u00ebm nj\u00eb masteri sillte problem p\u00ebr ndarjen e ngarkes\u00ebs. Duhet t\u00eb krijonim disa klaster\u00eb t\u00eb pavarur \"1 master dhe N skllev\u00ebr\", pastaj t\u00eb shp\u00ebrndanim manualisht bazat mbi k\u00ebto makina dhe t\u00eb shpresonim q\u00eb nes\u00ebr ndonj\u00ebra prej bazave nuk do t\u00eb p\u00ebrshkonte aq shum\u00eb sa do t\u00eb duhej ta transferonim n\u00eb nj\u00eb instanc\u00eb t\u00eb ve\u00e7ant\u00eb.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Cilat jan\u00eb opsionet?<\/p>\n<p><\/p>\n<ul>\n<li>Zgjidhja m\u00eb e shtrenjt\u00eb dhe e pasur \u00ebsht\u00eb Redis-Enterprise. Ky \u00ebsht\u00eb nj\u00eb zgjidhje e kutis\u00eb me mb\u00ebshtetje t\u00eb plot\u00eb teknike. Megjithat\u00eb, edhe pse duket e p\u00ebrsosur nga pik\u00ebpamja teknike, nuk na p\u00ebrputhej p\u00ebr arsye ideologjike. <\/li>\n<li>Redis-cluster. Nga kutia ka mb\u00ebshtetje p\u00ebr kalimin e fatkeq\u00ebsive t\u00eb masterit dhe ndarjen e ngarkes\u00ebs. Nd\u00ebrfaqja \u00ebsht\u00eb pothuajse e nj\u00ebjt\u00eb me versionin e zakonsh\u00ebm. Duket premtuese, p\u00ebr pengesat do t\u00eb flasim m\u00eb von\u00eb.<\/li>\n<li>Tarantool, Memcache, Aerospike dhe t\u00eb tjer\u00eb. T\u00eb gjitha k\u00ebto mjete b\u00ebjn\u00eb p\u00ebraf\u00ebrsisht t\u00eb nj\u00ebjt\u00ebn gj\u00eb. Por secili ka dob\u00ebsit\u00eb e veta. Ne vendos\u00ebm t\u00eb mos i vendosim t\u00eb gjitha vez\u00ebt n\u00eb nj\u00eb basket. Memcache dhe Tarantool i p\u00ebrdorim p\u00ebr detyra t\u00eb tjera dhe, duke kaluar p\u00ebrpara, do t\u00eb them se n\u00eb praktik\u00ebn ton\u00eb kemi pasur m\u00eb shum\u00eb probleme me to.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"specifika-ispolzovaniya\">Specifikimi i p\u00ebrdorimit<\/h1>\n<p><\/p>\n<p>Le t\u00eb shikojm\u00eb se cilat detyra kemi zgjidhur historikisht me Redis dhe cila funksionalitet kemi p\u00ebrdorur:<\/p>\n<p><\/p>\n<ul>\n<li>Cache para k\u00ebrkesave ndaj sh\u00ebrbimeve t\u00eb larg\u00ebta si 2GIS | Golang<br \/>\n<blockquote><p>MERRNI GRUMBULL MGET MSET \"ZGJIDH DB\"\n<\/p><\/blockquote>\n<\/li>\n<li>Cache para MYSQL | PHP<br \/>\n<blockquote><p>MERRNI GRUMBULL MGET MSET SKAN \"\u00c7ELSI NGA MODELI\" \"ZGJIDH DB\"\n<\/p><\/blockquote>\n<\/li>\n<li>Kryesori p\u00ebr sh\u00ebrbimin e pun\u00ebs me sesionet dhe koordinatat e shofer\u00ebve | Golang<br \/>\n<blockquote><p>MERRNI GRUMBULL MGET MSET \"ZGJIDH DB\" \"SHTO \u00c7ELSIN GEO\" \"MERR \u00c7ELSIN GEO\" SKAN\n<\/p><\/blockquote>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Si\u00e7 e shihni, nuk ka matematik\u00eb t\u00eb avancuar. \u00c7far\u00eb ka at\u00ebher\u00eb v\u00ebshtir\u00ebsin\u00eb? Le t\u00eb analizojm\u00eb n\u00eb ve\u00e7anti secil\u00ebn metod\u00eb.<\/p>\n<p><\/p>\n<p>Sanitizer.replaceElementWithChildren()<br \/>\nP\u00ebrshkrimi<br \/>\nKarakteristikat e Redis-cluster<br \/>\nZgjidhja<\/p>\n<p>GET SET<br \/>\nShkruaj\/lexo \u00e7el\u00ebsin<\/p>\n<p>MGET MSET<br \/>\nShkruaj\/lexo disa \u00e7el\u00ebsa<br \/>\n\u00c7el\u00ebsat do t\u00eb jen\u00eb n\u00eb node t\u00eb ndryshme. Bibliotekat e gatshme din\u00eb t\u00eb b\u00ebjn\u00eb Multi-operacione vet\u00ebm brenda nj\u00eb node.<br \/>\nZ\u00ebvend\u00ebso MGET me nj\u00eb pipeline t\u00eb N GET operacioneve<\/p>\n<p>SELECT DB<br \/>\nZgjidhni baz\u00ebn me t\u00eb cil\u00ebn do t\u00eb punojm\u00eb<br \/>\nNuk mb\u00ebshtet disa baza t\u00eb dh\u00ebnash<br \/>\nT\u00eb gjitha n\u00eb nj\u00eb baz\u00eb. Shtoni prefikse n\u00eb \u00e7el\u00ebsa<\/p>\n<p>SCAN<br \/>\nKaloni p\u00ebrmes t\u00eb gjith\u00ebve \u00e7el\u00ebsave n\u00eb baz\u00eb<br \/>\nPavar\u00ebsisht se kemi nj\u00eb baz\u00eb, kalimi p\u00ebrmes t\u00eb gjith\u00ebve \u00e7el\u00ebsave n\u00eb kluster \u00ebsht\u00eb shum\u00eb i kushtuesh\u00ebm.<br \/>\nMbani invariat brenda nj\u00eb \u00e7el\u00ebsi dhe b\u00ebni HSCAN p\u00ebr k\u00ebt\u00eb \u00e7el\u00ebs. Ose hiqni dor\u00eb krejt\u00ebsisht.<\/p>\n<p>GEO<br \/>\nOperacione me gjeokel\u00ebsin<br \/>\nGjeokel\u00ebsi nuk shardohet<\/p>\n<p>KEY BY PATTERN<br \/>\nK\u00ebrkoni \u00e7el\u00ebsin sipas modelit<br \/>\nPavar\u00ebsisht se kemi nj\u00eb baz\u00eb, do t\u00eb k\u00ebrkojm\u00eb p\u00ebrmes t\u00eb gjith\u00eb \u00e7el\u00ebsave n\u00eb kluster. Shum\u00eb i kushtuesh\u00ebm.<br \/>\nHiqni dor\u00eb ose mbani invariat, ashtu si n\u00eb rastin e SCAN.<\/p>\n<p><\/p>\n<h1 id=\"redis-vs-redis-cluster\">Redis vs Redis-cluster<\/h1>\n<p><\/p>\n<p>\u00c7far\u00eb humbasim dhe \u00e7far\u00eb fitojm\u00eb kur kalojm\u00eb n\u00eb kluster?<\/p>\n<p><\/p>\n<ul>\n<li>Disavantazhet: humbasim funksionalitetin e disa bazave. \n<ul>\n<li>N\u00ebse duam t\u00eb ruajm\u00eb t\u00eb dh\u00ebna q\u00eb nuk lidhen logjikisht n\u00eb nj\u00eb kluster, do t\u00eb duhet t\u00eb b\u00ebjm\u00eb ndihma p\u00ebrmes prefikseve. <\/li>\n<li>Humbasim t\u00eb gjitha operacionet \"p\u00ebr baz\u00ebn\", si SCAN, DBSIZE, CLEAR DB etj.<\/li>\n<li>Multi-operacionet jan\u00eb b\u00ebr\u00eb ndjesh\u00ebm m\u00eb t\u00eb komplikuara p\u00ebr t'u realizuar, sepse mund t\u00eb nevojitet ndihma nga disa node.<\/li>\n<\/ul>\n<\/li>\n<li>Avantazhet: \n<ul>\n<li>Q\u00ebndrueshm\u00ebri n\u00eb form\u00ebn e kalimit t\u00eb emergjenc\u00ebs p\u00ebr masterin.<\/li>\n<li>Shardimi n\u00eb an\u00ebn e Redis.<\/li>\n<li>Transferimi i t\u00eb dh\u00ebnave midis node-ve n\u00eb m\u00ebnyr\u00eb atomike dhe pa ndalese.<\/li>\n<li>Shtimi dhe shp\u00ebrndarja e kapaciteteve dhe ngarkesave pa nd\u00ebrprerje.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p><em>Do t\u00eb arrija n\u00eb p\u00ebrfundimin se n\u00ebse nuk keni nevoj\u00eb t\u00eb siguroheni p\u00ebr nj\u00eb nivel t\u00eb lart\u00eb q\u00ebndrueshm\u00ebrie, at\u00ebher\u00eb kalimi n\u00eb nj\u00eb klaster nuk ia vlen, pasi mund t\u00eb jet\u00eb nj\u00eb detyr\u00eb jo triviale. Por n\u00ebse fillimisht zgjidhni midis nj\u00eb versioni t\u00eb ve\u00e7ant\u00eb dhe nj\u00eb klasteri, at\u00ebher\u00eb duhet t\u00eb zgjidhni klasterin, pasi ai nuk \u00ebsht\u00eb n\u00eb asnj\u00eb rast m\u00eb i keq dhe p\u00ebr m\u00eb tep\u00ebr do t'ju heq\u00eb nj\u00eb pjes\u00eb t\u00eb dhimbjeve t\u00eb kok\u00ebs.<\/em><\/p>\n<p><\/p>\n<h1 id=\"podgotovka-k-pereezdu\">P\u00ebrgatitja p\u00ebr kalim<\/h1>\n<p><\/p>\n<p>T\u00eb fillojm\u00eb me k\u00ebrkesat p\u00ebr kalimin:<\/p>\n<p><\/p>\n<ul>\n<li>Ai duhet t\u00eb jet\u00eb pa shqet\u00ebsim. Nj\u00eb ndalim i plot\u00eb i sh\u00ebrbimit p\u00ebr 5 minuta nuk na ndihmon.<\/li>\n<li>Ai duhet t\u00eb jet\u00eb maksimalisht i sigurt dhe i gradual. Duam t\u00eb kemi nj\u00eb lloj kontrolli mbi situat\u00ebn. Nuk duam t\u00eb hedhim gjith\u00e7ka menj\u00ebher\u00eb dhe t\u00eb lutemi p\u00ebr butonin e rikthimit.<\/li>\n<li>Humbej t\u00eb minimalizuara t\u00eb t\u00eb dh\u00ebnave gjat\u00eb kalimit. E kuptojm\u00eb q\u00eb t\u00eb kalosh n\u00eb m\u00ebnyr\u00eb atomike do t\u00eb jet\u00eb shum\u00eb e komplikuar, prandaj lejojm\u00eb nj\u00eb shk\u00ebputje t\u00eb caktuar midis t\u00eb dh\u00ebnave n\u00eb Redisin e zakonsh\u00ebm dhe at\u00eb klaster.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"obsluzhivanie-klastera\">Mir\u00ebmbajtja e klasterit<\/h1>\n<p><\/p>\n<p>Para kalimit vlen t\u00eb mendoni n\u00ebse mundemi t\u00eb mbajm\u00eb klasterin:<\/p>\n<p><\/p>\n<ul>\n<li>Grafik\u00ebt. Ne p\u00ebrdorim Prometheus dhe Grafana p\u00ebr grafik\u00ebt e ngarkes\u00ebs s\u00eb procesor\u00ebve, kujtes\u00ebs s\u00eb z\u00ebn\u00eb, numrit t\u00eb klient\u00ebve, numrit t\u00eb operacioneve GET, SET, AUTH, etj.<\/li>\n<li>Ekspertiza. Imagjinoni se nes\u00ebr n\u00ebn p\u00ebrgjegj\u00ebsin\u00eb tuaj do t\u00eb jet\u00eb nj\u00eb klaster i madh. N\u00ebse ai d\u00ebshtoi, askush p\u00ebrve\u00e7 jush nuk do ta riparoj\u00eb at\u00eb. N\u00ebse fillon t\u00eb ngadal\u00ebsohet \u2014 t\u00eb gjith\u00eb do vrapojn\u00eb tek ju. N\u00ebse duhet t\u00eb shtoni burime ose t\u00eb shp\u00ebrndani ngarkes\u00ebn \u2014 s\u00ebrish tek ju. Q\u00eb t\u00eb mos b\u00ebheni gri n\u00eb 25, \u00ebsht\u00eb e men\u00e7ur t\u00eb parashikoni k\u00ebto raste dhe t\u00eb kontrolloni paraprakisht se si do t\u00eb sillen teknologjit\u00eb n\u00ebn veprime t\u00eb caktuara. Do flasim p\u00ebr k\u00ebt\u00eb m\u00eb n\u00eb detaje n\u00eb seksionin 'Ekspertiza'.<\/li>\n<li>Monitorimet dhe njoftimet. Kur klasteri d\u00ebshtoi, d\u00ebshirojm\u00eb t\u00eb dim\u00eb t\u00eb par\u00ebt. K\u00ebtu ne e kufizuam njoftimin p\u00ebr faktin se t\u00eb gjitha nodeve iu kthehen t\u00eb nj\u00ebjtat informata mbi gjendjen e klasterit (po, ndodhin edhe ndryshe). Problemet e tjera jan\u00eb m\u00eb t\u00eb shpejta p\u00ebr t'u v\u00ebn\u00eb re n\u00ebp\u00ebrmjet njoftimeve t\u00eb sh\u00ebrbimeve-klient\u00ebve t\u00eb Redis.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"pereezd\">K\u00ebnaq\u00ebsi<\/h1>\n<p><\/p>\n<p>Si do t\u00eb kalojm\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>S\u00eb pari, nevojitet t\u00eb p\u00ebrgatisim bibliotek\u00ebn p\u00ebr pun\u00ebn me klasterin. Si baz\u00eb p\u00ebr versionin n\u00eb G\u043e, mor\u00ebm go-redis dhe b\u00ebm\u00eb disa ndryshime p\u00ebr ne. Realizuam metodat Multi p\u00ebrmes pipeline-ve, si dhe ndryshuam disi rregullat p\u00ebr p\u00ebrs\u00ebritjen e k\u00ebrkesave. Me versionin p\u00ebr PHP, kishim m\u00eb shum\u00eb probleme, por n\u00eb fund vendos\u00ebm p\u00ebr php-redis. S\u00eb fundmi, ata implementuan mb\u00ebshtetje p\u00ebr klasterin, dhe sipas mendimit ton\u00eb, ai duket mir\u00eb.<\/li>\n<li>M\u00eb pas, duhet t\u00eb vendosim vet\u00eb klasterin. Kjo b\u00ebhet praktikisht me dy komanda mbi baz\u00ebn e skedarit t\u00eb konfigurimit. M\u00eb shum\u00eb rreth konfigurimit do t\u00eb diskutojm\u00eb m\u00eb posht\u00eb.<\/li>\n<li>P\u00ebr nj\u00eb migrim t\u00eb ngadalt\u00eb, ne p\u00ebrdorim dry-mode. Meqen\u00ebse kemi dy versione t\u00eb bibliotek\u00ebs me nj\u00eb nd\u00ebrfaqe identike (nj\u00eb p\u00ebr versionin normal, tjet\u00ebr p\u00ebr klasterin), nuk \u00ebsht\u00eb e v\u00ebshtir\u00eb t\u00eb krijojm\u00eb nj\u00eb mb\u00ebshtjell\u00ebs q\u00eb do t\u00eb punoj\u00eb me versionin e ve\u00e7ant\u00eb dhe nj\u00ebkoh\u00ebsisht t\u00eb dublonte t\u00eb gjitha k\u00ebrkesat n\u00eb klaster, t\u00eb krahasoj\u00eb p\u00ebrgjigjet dhe t\u00eb shkruaj\u00eb shkaqet e mosp\u00ebrputhjeve n\u00eb log (n\u00eb rastin ton\u00eb n\u00eb NewRelic). K\u00ebshtu, madje edhe n\u00ebse gjat\u00eb aktivizimit versioni klaster d\u00ebshton, prodhimi yn\u00eb nuk do t\u00eb preket. <\/li>\n<li>Pasi aktivizuam klasterin n\u00eb dry-mode, mund t\u00eb shohim qet\u00ebsisht grafik\u00eb t\u00eb mosp\u00ebrputhjeve t\u00eb p\u00ebrgjigjeve. N\u00ebse p\u00ebrqindja e gabimeve po l\u00ebviz ngadal\u00eb, por me siguri drejt nj\u00eb konstante t\u00eb vog\u00ebl, at\u00ebher\u00eb gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull. Pse ka ende mosp\u00ebrputhje? Sepse shkrimi n\u00eb versionin e ve\u00e7ant\u00eb ndodh pak m\u00eb her\u00ebt se n\u00eb klaster, dhe p\u00ebr shkak t\u00eb mikrolog\u00ebve, t\u00eb dh\u00ebnat mund t\u00eb jen\u00eb t\u00eb ndryshme. Duhet vet\u00ebm t\u00eb shohim log\u00ebt e mosp\u00ebrputhjeve dhe n\u00ebse t\u00eb gjitha ato jan\u00eb t\u00eb shpjegueshme nga mosaplikimi i shkrimit, at\u00ebher\u00eb mund t\u00eb ecim p\u00ebrpara.<\/li>\n<li>Tani mund t\u00eb kthejm\u00eb dry-mode n\u00eb an\u00ebn e kund\u00ebrt. Do t\u00eb shkruajm\u00eb dhe lexojm\u00eb nga klasteri, nd\u00ebrsa do t\u00eb dublonim n\u00eb versionin e ve\u00e7ant\u00eb. Pse? Gjat\u00eb jav\u00ebs tjet\u00ebr d\u00ebshirojm\u00eb t\u00eb v\u00ebzhgojm\u00eb pun\u00ebn e klasterit. N\u00ebse ndonj\u00ebher\u00eb zbulojm\u00eb se n\u00eb kulmin e ngarkes\u00ebs ka probleme, ose kemi harruar ndonj\u00eb aspekt, gjithmon\u00eb kemi nj\u00eb rikthim emergjent n\u00eb kodin e vjet\u00ebr dhe t\u00eb dh\u00ebna aktuale fal\u00eb dry-mode.<\/li>\n<li>Tani na mbetet t\u00eb \u00e7aktivizojm\u00eb dry-mode dhe t\u00eb \u00e7montojm\u00eb versionin e ve\u00e7ant\u00eb. <\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"ekspertiza\">Ekspertiza<\/h1>\n<p><\/p>\n<p>S\u00eb pari, nj\u00eb p\u00ebrmbledhje e struktur\u00ebs s\u00eb klasterit.<\/p>\n<p><\/p>\n<p>S\u00eb pari, Redis \u00ebsht\u00eb nj\u00eb magazin\u00eb key-value. Si \u00e7el\u00ebs p\u00ebrdoren vargje t\u00eb caktuara. Si vlera mund t\u00eb p\u00ebrdoren numra, vargje dhe struktura t\u00eb plota. K\u00ebto t\u00eb fundit jan\u00eb shum\u00eb t\u00eb shumta, por p\u00ebr t\u00eb kuptuar struktur\u00ebn e p\u00ebrgjithshme, kjo nuk \u00ebsht\u00eb e r\u00ebnd\u00ebsishme.<br \/>\nNiveli i ardhsh\u00ebm pas \u00e7el\u00ebsave jan\u00eb slots (SLOTS). \u00c7do \u00e7el\u00ebs i p\u00ebrket nj\u00eb prej 16,383 slots. Brenda \u00e7do slot-i mund t\u00eb ket\u00eb sa t\u00eb doni \u00e7el\u00ebsa. Pra, t\u00eb gjith\u00eb \u00e7el\u00ebsat ndahen n\u00eb 16,383 grupe t\u00eb pa p\u00ebrplase.<br \/>\n<img decoding=\"async\" alt=\"Rreth kalimit nga Redis n\u00eb Redis-cluster\" src=\"\/wp-content\/uploads\/2020\/08\/a5e4be23381b42287f693e01d5d59a99.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb cluster duhet t\u00eb ket\u00eb N master-nodes. \u00c7do node mund t\u00eb paraqitet si nj\u00eb instanc\u00eb e ve\u00e7ant\u00eb Redis, e cila di gjith\u00e7ka p\u00ebr nodet e tjera brenda cluster-it. \u00c7do master-node p\u00ebrmban nj\u00eb num\u00ebr slots. \u00c7do slot i p\u00ebrket vet\u00ebm nj\u00eb master-node. T\u00eb gjitha slots duhet t\u00eb shp\u00ebrndahen midis nodave. N\u00ebse disa slots nuk jan\u00eb shp\u00ebrndar\u00eb, at\u00ebher\u00eb \u00e7el\u00ebsat q\u00eb ruhen n\u00eb to do t\u00eb jen\u00eb t\u00eb paarritsh\u00ebm. \u00cbsht\u00eb e arsyeshme t\u00eb b\u00ebni \u00e7do master-node t\u00eb funksionoj\u00eb n\u00eb nj\u00eb makin\u00eb logjike ose fizike t\u00eb ve\u00e7ant\u00eb. Gjithashtu, duhet t\u00eb mbani n\u00eb mend se \u00e7do node funksionon vet\u00ebm n\u00eb nj\u00eb b\u00ebrtham\u00eb, dhe n\u00ebse d\u00ebshironi t\u00eb ekzekutoni disa instanca Redis n\u00eb nj\u00eb makin\u00eb logjike, sigurohuni q\u00eb ato t\u00eb funksionojn\u00eb n\u00eb b\u00ebrthema t\u00eb ndryshme (ne nuk e kemi provuar k\u00ebt\u00eb, por teorikisht gjith\u00e7ka duhet t\u00eb funksionoj\u00eb). N\u00eb thelb, master-nodet sigurojn\u00eb shardim t\u00eb zakonsh\u00ebm, dhe m\u00eb shum\u00eb master-nodes lejojn\u00eb t\u00eb shkall\u00ebzoni k\u00ebrkesat p\u00ebr shkrim dhe lexim.<\/p>\n<p><\/p>\n<p>Pasi q\u00eb t\u00eb gjith\u00eb \u00e7el\u00ebsat jan\u00eb shp\u00ebrndar\u00eb n\u00eb slots dhe slots jan\u00eb shp\u00ebrndar\u00eb n\u00eb master-nodes, mund t\u00eb shtoni nj\u00eb num\u00ebr t\u00eb pakufizuar slayv-nodet n\u00eb \u00e7do master-node. Brenda \u00e7do lidhjeje t\u00eb till\u00eb \"master-slave\" do t\u00eb funksionoj\u00eb replikimi i zakonsh\u00ebm. Slayv\u00ebt jan\u00eb t\u00eb nevojsh\u00ebm p\u00ebr t\u00eb shkall\u00ebzuar k\u00ebrkesat p\u00ebr lexim dhe p\u00ebr kalimin n\u00eb rast d\u00ebshtimi t\u00eb masterit.<br \/>\n<img decoding=\"async\" alt=\"Rreth kalimit nga Redis n\u00eb Redis-cluster\" src=\"\/wp-content\/uploads\/2020\/08\/90feb7ef9dacb858d5f21edc214df14d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tani le t\u00eb flasim p\u00ebr operacione q\u00eb do t\u00eb ishte mir\u00eb t\u00eb dim\u00eb t\u00eb b\u00ebjm\u00eb.<\/p>\n<p><\/p>\n<p>Ne do t\u00eb drejtohemi n\u00eb sistem p\u00ebrmes Redis-CLI. Meqen\u00ebse Redis nuk ka nj\u00eb pik\u00eb hyr\u00ebse t\u00eb vetme, operacionet e m\u00ebposhtme mund t\u00eb kryhen n\u00eb \u00e7do nga nodat. N\u00eb \u00e7do pik\u00eb do t\u00eb theksoj mund\u00ebsin\u00eb e kryerjes s\u00eb operacionit n\u00ebn ngarkes\u00eb.<\/p>\n<p><\/p>\n<ul>\n<li>E para dhe m\u00eb e r\u00ebnd\u00ebsishmja q\u00eb na nevojitet: operacioni cluster nodes. Ai kthen gjendjen e cluster-it, tregon list\u00ebn e nodave, rolet e tyre, shp\u00ebrndarjen e slots etj. Informacione shtes\u00eb mund t\u00eb merren duke p\u00ebrdorur cluster info dhe cluster slots.<\/li>\n<li>Do t\u00eb ishte mir\u00eb t\u00eb ishim n\u00eb gjendje t\u00eb shtonim dhe hiqnim nodet. P\u00ebr k\u00ebt\u00eb q\u00ebllim, ekzistojn\u00eb operacionet cluster meet dhe cluster forget. Kini parasysh se cluster forget duhet t\u00eb aplikohet p\u00ebr \u00c7DO nod, si p\u00ebr masterat ashtu edhe p\u00ebr replikat. Nd\u00ebrsa p\u00ebr cluster meet \u00ebsht\u00eb e mjaftueshme t\u00eb thirret vet\u00ebm n\u00eb nj\u00eb nod. Kjo ndryshim mund t\u00eb jet\u00eb dekurajues, prandaj \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb informoheni p\u00ebr t\u00eb para se t\u00eb filloni p\u00ebrdorimin e klasterit. Shtimi i nj\u00eb node b\u00ebhet n\u00eb siguri gjat\u00eb operimit dhe nuk ndikon n\u00eb funksionimin e klasterit (\u00e7ka ka kuptim). N\u00ebse planifikoni t\u00eb hiqni nj\u00eb nod nga klasteri, duhet t\u00eb siguroheni q\u00eb nuk ka mbetur asnj\u00eb slot mbi t\u00eb (p\u00ebrndryshe rrezikoni t\u00eb humbni qasjen n\u00eb t\u00eb gjitha \u00e7el\u00ebsat mbi k\u00ebt\u00eb nod). Gjithashtu, mos e fshini masterin q\u00eb ka slave, p\u00ebrndryshe do t\u00eb kryhet nj\u00eb votim i panevojsh\u00ebm p\u00ebr nj\u00eb master t\u00eb ri. N\u00ebse n\u00eb nodet nuk ka m\u00eb slot, at\u00ebher\u00eb kjo \u00ebsht\u00eb nj\u00eb problem i vog\u00ebl, por pse t\u00eb kemi zgjedhje t\u00eb panevojshme n\u00ebse mund ta hiqnim fillimisht slave.<\/li>\n<li>N\u00ebse \u00ebsht\u00eb e nevojshme t\u00eb detyrohet nd\u00ebrrimi i vendit mes master dhe slave, komanda e duhur \u00ebsht\u00eb cluster failover. Duke e thirrur k\u00ebt\u00eb n\u00eb veprim, duhet t\u00eb kuptoni se gjat\u00eb kryerjes s\u00eb operacionit, masteri do t\u00eb jet\u00eb i paarritsh\u00ebm. Zakonisht, nd\u00ebrrimi ndodh p\u00ebr m\u00eb pak se nj\u00eb sekond, por nuk \u00ebsht\u00eb atomar. Mund t\u00eb jeni t\u00eb sigurt se nj\u00eb pjes\u00eb e k\u00ebrkesave ndaj masterit gjat\u00eb k\u00ebsaj kohe do t\u00eb p\u00ebrfundojn\u00eb me gabim.<\/li>\n<li>Para hequr nj\u00eb nod\u00eb nga klasteri, nuk duhet t\u00eb mbeten slot\u00eb n\u00eb t\u00eb. \u00cbsht\u00eb m\u00eb mir\u00eb t'i ri-shp\u00ebrndani ato duke p\u00ebrdorur komand\u00ebn cluster reshard. Slot\u00ebt do t\u00eb transferohen nga nj\u00eb master n\u00eb nj\u00eb tjet\u00ebr. E gjith\u00eb operacioni mund t\u00eb zgjas\u00eb disa minuta, kjo varet nga sasia e t\u00eb dh\u00ebnave q\u00eb po transferohen, megjithat\u00eb procesi i transferimit \u00ebsht\u00eb i sigurt dhe nuk ndikon aspak n\u00eb pun\u00ebn e klasterit. K\u00ebshtu, t\u00eb dh\u00ebnat mund t\u00eb transferohen nga nj\u00eb nod\u00eb n\u00eb nj\u00eb tjet\u00ebr n\u00ebn ngarkes\u00eb, pa u shqet\u00ebsuar p\u00ebr disponueshm\u00ebrin\u00eb e tyre. Megjithat\u00eb, ka edhe nuanca. S\u00eb pari, transferimi i t\u00eb dh\u00ebnave \u00ebsht\u00eb i lidhur me nj\u00eb ngarkes\u00eb t\u00eb caktuar n\u00eb nod\u00ebn q\u00eb merr dhe n\u00eb nod\u00ebn q\u00eb d\u00ebrgon. N\u00ebse nod\u00eb e pranuese \u00ebsht\u00eb tashm\u00eb shum\u00eb e ngarkuar me procesor, at\u00ebher\u00eb nuk duhet ta ngarkoni edhe m\u00eb tej duke pranuar t\u00eb dh\u00ebna t\u00eb reja. S\u00eb dyti, sapo n\u00eb masterin d\u00ebrgues t\u00eb mos ket\u00eb mbetur asnj\u00eb slot, t\u00eb gjith\u00eb slave-t e tij menj\u00ebher\u00eb do t\u00eb kalojn\u00eb tek masteri n\u00eb t\u00eb cilin ato slot\u00eb jan\u00eb transferuar. Dhe problemi \u00ebsht\u00eb se t\u00eb gjith\u00eb k\u00ebta slave menj\u00ebher\u00eb do t\u00eb duan t\u00eb sinkronizojn\u00eb t\u00eb dh\u00ebnat. Dhe do t\u00eb keni fat n\u00ebse kjo do t\u00eb jet\u00eb nj\u00eb sinkronizim i pjessh\u00ebm dhe jo i plot\u00eb. Merrni parasysh k\u00ebt\u00eb, dhe kombinoni operacionet e transferimit t\u00eb slot\u00ebve dhe \u00e7aktivizimin\/transferimin e slave-ve. Ose shpresoni se keni nj\u00eb rezerv\u00eb t\u00eb mjaftueshme.<\/li>\n<li>\u00c7far\u00eb t\u00eb b\u00ebni n\u00ebse gjat\u00eb transferimit keni zbuluar se keni humbur slot\u00ebt? Shpresoj se kjo problem nuk do t'ju preke, por n\u00ebse ndodh, ekziston operacioni cluster fix. Ai do t'i shp\u00ebrndaj\u00eb slot\u00ebt n\u00eb nod\u00eb n\u00eb nj\u00eb rend t\u00eb rast\u00ebsish\u00ebm. Rekomandoj t\u00eb kontrolloni pun\u00ebn e tij, duke e fshir\u00eb paraprakisht nj\u00eb nod\u00eb nga klasteri me slot\u00eb t\u00eb shp\u00ebrndara. Duke qen\u00eb se t\u00eb dh\u00ebnat n\u00eb slot\u00ebt e pa-shp\u00ebrndara nuk jan\u00eb t\u00eb arritshme, \u00ebsht\u00eb tep\u00ebr von\u00eb t\u00eb shqet\u00ebsoheni p\u00ebr problemet me disponueshm\u00ebrin\u00eb e k\u00ebtyre slot\u00ebve. Nga ana tjet\u00ebr, operacioni nuk do t\u00eb ndikohet nga slot\u00ebt e shp\u00ebrndara.<\/li>\n<li>Nj\u00eb operacion tjet\u00ebr i dobish\u00ebm \u00ebsht\u00eb monitor. Ai lejon t\u00eb shihni n\u00eb koh\u00eb reale t\u00eb gjith\u00eb list\u00ebn e k\u00ebrkesave q\u00eb po i drejtohen nod\u00ebs. M\u00eb shum\u00eb se kaq, p\u00ebrmes tij mund t\u00eb b\u00ebni grep dhe t\u00eb zjidhni n\u00ebse ka trafik t\u00eb nevojsh\u00ebm.<\/li>\n<\/ul>\n<p><\/p>\n<p>Po ashtu, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb p\u00ebrmendet procedura e kalimit t\u00eb fatkeq\u00ebsis\u00eb s\u00eb master-it. N\u00ebse flasim shkurt, ajo ekziston dhe, sipas mendimit tim, funksionon mjaft mir\u00eb. Megjithat\u00eb, mos mendoni se n\u00ebse t\u00ebrhiqni kabllon nga priza n\u00eb makin\u00eb me master-nod, Redis do t\u00eb kaloj\u00eb menj\u00ebher\u00eb dhe klient\u00ebt nuk do ta ndjejn\u00eb humbjen. Nga p\u00ebrvoja ime, kalimi ndodh brenda disa sekondash. Gjat\u00eb k\u00ebsaj kohe, nj\u00eb pjes\u00eb e t\u00eb dh\u00ebnave do t\u00eb jet\u00eb e paqasshme: zbulohet mungesa e master-it, nodet votojn\u00eb p\u00ebr nj\u00eb t\u00eb ri, slave-t kalohen, t\u00eb dh\u00ebnat sinkronizohen. M\u00ebnyra m\u00eb e mir\u00eb p\u00ebr t'u siguruar vet\u00eb se skema funksionon \u00ebsht\u00eb t\u00eb organizoni st\u00ebrvitje lokale. Ngritni nj\u00eb klaster n\u00eb laptopin tuaj, jepni nj\u00eb ngarkes\u00eb minimale, simuloni nj\u00eb r\u00ebnie (p\u00ebr shembull, duke bllokuar portet), vler\u00ebsoni shpejt\u00ebsin\u00eb e kalimit. Sipas mendimit tim, vet\u00ebm duke luajtur n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb p\u00ebr nj\u00eb ose dy dit\u00eb, mund t\u00eb jesh i sigurt p\u00ebr funksionimin e teknologjis\u00eb. Ose, mund t\u00eb shpresoni se softueri q\u00eb p\u00ebrdoret nga gjysma e internetit padyshim funksionon.<\/p>\n<p><\/p>\n<h1 id=\"konfiguraciya\">Konfigurimi<\/h1>\n<p><\/p>\n<p>Shpesh, konfigurimi \u00ebsht\u00eb gj\u00ebja e par\u00eb q\u00eb nevojitet p\u00ebr t\u00eb filluar pun\u00ebn me mjetin. Dhe kur gjith\u00e7ka fillon t\u00eb funksionoj\u00eb, nuk d\u00ebshiron ta prek\u00ebsh konfigurimin. K\u00ebrkohen p\u00ebrpjekje t\u00eb caktuara p\u00ebr t'u detyruar t\u00eb kthehesh n\u00eb cil\u00ebsime dhe t'i shqyrtosh ato me kujdes. Nga sa mbaj mend, kemi pasur t\u00eb pakt\u00ebn dy d\u00ebshtime serioze p\u00ebr shkak t\u00eb pamund\u00ebsis\u00eb p\u00ebr t\u00eb treguar kujdes ndaj konfigurimit. Kushtoni v\u00ebmendje t\u00eb ve\u00e7ant\u00eb pikave t\u00eb m\u00ebposhtme:<\/p>\n<p><\/p>\n<ul>\n<li>timeout 0<br \/>\n<em>Koha gjat\u00eb s\u00eb cil\u00ebs mbyllen lidhjet e pasive (n\u00eb sekonda). 0 - nuk mbyllen<\/em><br \/>\nNuk \u00e7do lib\u00ebrton\u00eb ton\u00eb dinte t'i mbyllte lidhjet n\u00eb m\u00ebnyr\u00eb t\u00eb sakt\u00eb. Duke \u00e7aktivizuar k\u00ebt\u00eb cil\u00ebsim, rrezikojm\u00eb t\u00eb b\u00ebjm\u00eb nj\u00eb limit n\u00eb numrin e klient\u00ebve. Nga ana tjet\u00ebr, n\u00ebse ka nj\u00eb problem t\u00eb till\u00eb, ndalja automatike e lidhjeve t\u00eb humbura do ta maskoj\u00eb at\u00eb, dhe mund t\u00eb mos e v\u00ebrejm\u00eb. P\u00ebr m\u00eb tep\u00ebr, mos e aktivizoni k\u00ebt\u00eb cil\u00ebsim kur p\u00ebrdorni lidhje persistente.<\/li>\n<li>Save x y &amp; appendonly yes<br \/>\n<em>Ruajtja e snapshot-it RDB.<\/em><br \/>\nProblemet RDB\/AOF do t'i diskutojm\u00eb n\u00eb detaje m\u00eb posht\u00eb.<\/li>\n<li>stop-writes-on-bgsave-error no &amp; slave-serve-stale-data yes<br \/>\n<em>N\u00ebse \u00ebsht\u00eb aktivizuar, at\u00ebher\u00eb n\u00eb rastin e d\u00ebshtimit t\u00eb snapshot-it RDB, master-i do t\u00eb ndaloj\u00eb pranimin e k\u00ebrkesave p\u00ebr ndryshime. N\u00ebse humbet lidhja me master-in, ato slave mund t\u00eb vazhdojn\u00eb t\u00eb p\u00ebrgjigjen ndaj k\u00ebrkesave (po). Ose do t\u00eb ndalojn\u00eb p\u00ebrgjigjen (jo)<\/em><br \/>\nNuk na p\u00eblqen situata n\u00eb t\u00eb cil\u00ebn Redis transformohet n\u00eb nj\u00eb p\u00ebrrall\u00eb.<\/li>\n<li>repl-ping-slave-period 5<br \/>\n<em>Pas k\u00ebtij intervali, ne do t\u00eb shqet\u00ebsohemi se mjeshtri \u00ebsht\u00eb prishur dhe \u00ebsht\u00eb koha p\u00ebr ta kryer procedur\u00ebn e kalimit n\u00eb sistem t\u00eb dyt\u00eb.<\/em><br \/>\nDo t\u00eb duhet t\u00eb gjejm\u00eb manualisht ekuilibrin midis alarmeve t\u00eb rreme dhe aktivizimit t\u00eb kalimit n\u00eb sistem t\u00eb dyt\u00eb. N\u00eb praktik\u00ebn ton\u00eb, kjo \u00ebsht\u00eb 5 sekonda.<\/li>\n<li>repl-backlog-size 1024mb &amp; epl-backlog-ttl 0<br \/>\n<em>Sakt\u00ebsisht aq t\u00eb dh\u00ebna mund t\u00eb ruajm\u00eb n\u00eb tampon p\u00ebr replik\u00ebn q\u00eb ka humbur lidhjen. N\u00ebse tamponi p\u00ebrfundon, do t\u00eb jet\u00eb e nevojshme t\u00eb sinkronizohemi plot\u00ebsisht.<\/em><br \/>\nPraktika tregon se \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb vendosni nj\u00eb vler\u00eb m\u00eb t\u00eb madhe. Shkaku p\u00ebr t\u00eb cilin nj\u00eb replik\u00eb mund t\u00eb filloj\u00eb t\u00eb mbetet pas \u00ebsht\u00eb mjaft i r\u00ebnd\u00eb. N\u00ebse ajo vonohet, gjasat jan\u00eb se mjeshtri juaj tashm\u00eb po p\u00ebrballet me v\u00ebshtir\u00ebsi, dhe sinkronizimi i plot\u00eb do t\u00eb jet\u00eb pika e fundit.<\/li>\n<li>maxclients 10000<br \/>\n<em>Numri maksimal i klient\u00ebve n\u00eb nj\u00eb koh\u00eb t\u00eb vetme.<\/em><br \/>\nNga p\u00ebrvoja jon\u00eb, \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb vendosni nj\u00eb vler\u00eb m\u00eb t\u00eb madhe. Redis e menaxhon mir\u00eb me 10,000 lidhje. Thjesht sigurohuni q\u00eb sistemi t\u00eb ket\u00eb mjaft sokete. <\/li>\n<li>maxmemory-policy volatile-ttl<br \/>\n<em>Rregulli sipas t\u00eb cilit fshihen \u00e7el\u00ebsat kur arrihet kufiri i memories s\u00eb disponueshme.<\/em><br \/>\nK\u00ebtu \u00ebsht\u00eb e r\u00ebnd\u00ebsishme jo rregulli vet\u00eb, por kuptimi se si do t\u00eb ndodh\u00eb kjo. Redis \u00ebsht\u00eb p\u00ebr t'u lavd\u00ebruar p\u00ebr aft\u00ebsin\u00eb e tij p\u00ebr t\u00eb punuar normalisht kur arrihet kufiri i memories. <\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"problemy-rdb-i-aof\">Problemet RDB dhe AOF<\/h1>\n<p><\/p>\n<p>Megjith\u00ebse Redis vet\u00eb ruan t\u00eb gjitha informacionet n\u00eb memorien RAM, gjithashtu ka nj\u00eb mekaniz\u00ebm p\u00ebr ruajtjen e t\u00eb dh\u00ebnave n\u00eb disk. M\u00eb sakt\u00ebsisht, tre mekanizma:<\/p>\n<p><\/p>\n<ul>\n<li>RDB-snapshot \u2014 nj\u00eb kopje e plot\u00eb e t\u00eb dh\u00ebnave. Caktohet p\u00ebrmes konfigurimit SAVE X Y dhe lexohet si \"Ruaj nj\u00eb kopje t\u00eb plot\u00eb t\u00eb t\u00eb dh\u00ebnave \u00e7do X sekonda, n\u00ebse \u00ebsht\u00eb ndryshuar t\u00eb pakt\u00ebn Y \u00e7el\u00ebsa.\"<\/li>\n<li>Skeda e zakonshme \u2014 nj\u00eb list\u00eb e operacioneve sipas rendit t\u00eb ekzekutimit. Shton operacionet e reja n\u00eb sked\u00eb \u00e7do X sekonda ose \u00e7do Y operacione.<\/li>\n<li>RDB dhe AOF \u2014 nj\u00eb kombinim i dy mekanizmave t\u00eb m\u00ebparsh\u00ebm.<\/li>\n<\/ul>\n<p><\/p>\n<p>T\u00eb gjitha metodat kan\u00eb avantazhet dhe disavantazhet e tyre, nuk do t'i rendis t\u00eb gjitha, vet\u00ebm do t\u00eb ve\u00e7oj disa pika q\u00eb nuk jan\u00eb aq t\u00eb dukshme, sipas mendimit tim.<\/p>\n<p><\/p>\n<p>S\u00eb pari, p\u00ebr t\u00eb ruajtur nj\u00eb snapshot RDB, \u00ebsht\u00eb e nevojshme t\u00eb th\u00ebrrisni FORK. N\u00ebse ka shum\u00eb t\u00eb dh\u00ebna, kjo mund t\u00eb ngadal\u00ebsoj\u00eb t\u00ebr\u00eb Redis p\u00ebr nj\u00eb periudh\u00eb prej disa milisekondash deri n\u00eb nj\u00eb sekond\u00eb. P\u00ebr m\u00eb tep\u00ebr, sistemi k\u00ebrkon t\u00eb alokoj\u00eb memorien p\u00ebr nj\u00eb snapshot t\u00eb till\u00eb, gj\u00eb q\u00eb \u00e7on n\u00eb nevoj\u00ebn p\u00ebr t\u00eb mbajtur nj\u00eb rezerva t\u00eb dyfisht\u00eb t\u00eb memorjes RAM: n\u00ebse Redis alokohet 8 GB, at\u00ebher\u00eb n\u00eb makin\u00eb virtuale me t\u00eb duhet t\u00eb jet\u00eb e disponueshme 16.<\/p>\n<p><\/p>\n<p>N\u00eb t\u00eb dyt\u00ebn, ka probleme me sinkronizimin e pjessh\u00ebm. N\u00eb modin AOF, gjat\u00eb rip\u00ebrputhjes s\u00eb skllav\u00ebve mund t\u00eb realizohet nj\u00eb sinkronizim i plot\u00eb n\u00eb vend t\u00eb nj\u00eb sinkronizimi t\u00eb pjessh\u00ebm. Pse ndodh kjo, nuk kam mundur ta kuptoj. Por duhet ta mbani mend k\u00ebt\u00eb.<\/p>\n<p><\/p>\n<p>K\u00ebto dy pika tashm\u00eb na b\u00ebjn\u00eb t\u00eb mendojm\u00eb n\u00ebse na duhen v\u00ebrtet k\u00ebto t\u00eb dh\u00ebna n\u00eb disk, n\u00ebse gjithsesi jan\u00eb t\u00eb kopjuara nga skllav\u00ebt. Mund t\u00eb humbasim t\u00eb dh\u00ebna vet\u00ebm n\u00eb rast t\u00eb d\u00ebshtimit t\u00eb t\u00eb gjitha skllav\u00ebve, dhe kjo \u00ebsht\u00eb nj\u00eb problem i nivelit \"zjarri n\u00eb DC\". Si nj\u00eb kompromis, mund t\u00eb propozohet q\u00eb t\u00eb ruajm\u00eb t\u00eb dh\u00ebnat vet\u00ebm n\u00eb skllav\u00eb, por n\u00eb k\u00ebt\u00eb rast duhet t\u00eb sigurohemi q\u00eb k\u00ebta skllav\u00eb kurr\u00eb t\u00eb mos b\u00ebhen mjesht\u00ebr gjat\u00eb rikuperimit emergjent (p\u00ebr k\u00ebt\u00eb ka nj\u00eb cil\u00ebsim t\u00eb prioriteteve t\u00eb skllav\u00ebve n\u00eb konfigurimin e tyre). P\u00ebr veten, n\u00eb \u00e7do rast konkret mendojm\u00eb n\u00ebse duhet t\u00eb ruajm\u00eb t\u00eb dh\u00ebna n\u00eb disk, dhe shpesh p\u00ebrgjigjja \u00ebsht\u00eb \"jo\".<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">P\u00ebrfundim<\/h1>\n<p><\/p>\n<p>N\u00eb p\u00ebrfundim, shpresoj t\u00eb kem dh\u00ebn\u00eb nj\u00eb pasqyr\u00eb t\u00eb p\u00ebrgjithshme p\u00ebr funksionimin e redis-cluster-it atyre q\u00eb nuk e kan\u00eb d\u00ebgjuar fare p\u00ebr t\u00eb, dhe gjithashtu t\u00eb kem theksuar disa \u00e7\u00ebshtje t\u00eb paqarta p\u00ebr ata q\u00eb e p\u00ebrdorin prej koh\u00ebsh.<br \/>\nFaleminderit p\u00ebr koh\u00ebn tuaj dhe, si zakonisht, komentet rreth tem\u00ebs jan\u00eb t\u00eb mir\u00ebpritura.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/515620\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0445\u043e\u0434\u044f \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u043b\u0435\u0442, \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0432 \u043d\u0435\u043c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438. \u041d\u043e \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0432 10 \u0440\u0430\u0437 \u0432\u044b\u0448\u0435, \u0430 \u0446\u0435\u043d\u0430 \u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u0441\u044f \u0432 \u0441\u043e\u0442\u043d\u0438 \u0440\u0430\u0437? \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043a\u0440\u0443\u0442\u043e\u0439 Highload Engineer. \u041d\u043e \u0437\u0430 \u043d\u0435\u0438\u043c\u0435\u043d\u0438\u0435\u043c \u0433\u043e\u0440\u043d\u0438\u0447\u043d\u043e\u0439 \u0442\u0430\u043a\u043e\u0432\u043e\u0433\u043e, \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0434\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u043c\u043d\u0435. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91847,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91846","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0445\u043e\u0434\u044f \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0435 \u0441 Redis \u043d\u0430 Redis-cluster | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0445\u043e\u0434\u044f \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-19T17:41:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-19T17:41:57+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rreth kalimit nga Redis n\u00eb Redis-cluster | ProHoster","description":"Duke ardhur n\u00eb nj\u00eb produkt q\u00eb po zhvillohet m\u00eb shum\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0435 \u0441 Redis \u043d\u0430 Redis-cluster | ProHoster","og:description":"\u041f\u0440\u0438\u0445\u043e\u0434\u044f \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-19T17:41:57+00:00","article:modified_time":"2020-08-19T17:41:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91846","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:19:41","updated":"2022-10-03 14:54:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/91846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=91846"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/91846\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/91847"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=91846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=91846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=91846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}