{"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":"N\u00eb lidhje me kalimin nga Redis n\u00eb Redis-cluster","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"N\u00eb lidhje me kalimin 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>Kur hyni n\u00eb nj\u00eb produkt q\u00eb zhvillohet p\u00ebr m\u00eb shum\u00eb se nj\u00eb dekad\u00eb, nuk \u00ebsht\u00eb aspak befasuese t\u00eb gjeni teknologji t\u00eb vjetra. Por \u00e7far\u00eb n\u00ebse pas gjasht\u00eb muajsh duhet t\u00eb mbani nj\u00eb ngarkes\u00eb dhjet\u00eb her\u00eb m\u00eb t\u00eb madhe, dhe \u00e7mimi i r\u00ebnieve rritet qindra her\u00eb? N\u00eb k\u00ebt\u00eb rast, ju nevojitet nj\u00eb Inxhinier Highload i shk\u00eblqyer. Por, p\u00ebr shkak t\u00eb munges\u00ebs s\u00eb nj\u00eb t\u00eb till\u00eb, problemin m\u00eb besuan mua. N\u00eb pjes\u00ebn e par\u00eb t\u00eb artikullit, do t\u00eb tregoj se si u kaluam nga Redis n\u00eb Redis-cluster, dhe n\u00eb pjes\u00ebn e dyt\u00eb do t\u00eb jap k\u00ebshilla si t\u00eb filloni t\u00eb p\u00ebrdorni klasterin dhe n\u00eb \u00e7far\u00eb duhet t\u00eb vini re gjat\u00eb kushteve t\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 izoluar) n\u00eb konfigurimin 1 master dhe N skllave? Pse e quaj at\u00eb teknologji t\u00eb vjet\u00ebr?<\/p>\n<p><\/p>\n<blockquote><p>Jo, Redis nuk \u00ebsht\u00eb kaq i keq... Sidoqoft\u00eb, ka disa mang\u00ebsi 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 nga r\u00ebnia e masterit. P\u00ebr t\u00eb zgjidhur k\u00ebt\u00eb problem, ne p\u00ebrdor\u00ebm nj\u00eb konfigurim me p\u00ebrshkrirjen automatike t\u00eb VIP-ve n\u00eb masterin e ri, duke ndryshuar rolin e nj\u00ebrit prej skllav\u00ebve dhe duke kaluar t\u00eb tjer\u00ebt. Ky mekaniz\u00ebm funksionoi, por nuk mund ta quajm\u00eb nj\u00eb zgjidhje t\u00eb besueshme. S\u00eb pari, ndodhnin goditje t\u00eb rreme, dhe s\u00eb dyti, ai ishte nj\u00eb her\u00ebsh, dhe pas aktivizimit k\u00ebrkoheshin veprime manuale p\u00ebr t\u00eb rifilluar sistemin.<\/p>\n<p>\n<\/li>\n<li>\n<p>S\u00eb dyti, pranimi i vet\u00ebm nj\u00eb masteri shkaktonte nj\u00eb problem sharding. Duhej t\u00eb krijonim disa klaster\u00eb t\u00eb pavarur \"1 master dhe N skllav\u00eb\", pastaj t\u00eb shp\u00ebrndanim manualisht bazat n\u00eb k\u00ebto makina dhe t\u00eb shpresonim q\u00eb nes\u00ebr ndonj\u00ebra nga bazat nuk do t\u00eb rritej aq shum\u00eb sa t\u00eb duhej t\u00eb transferohej n\u00eb nj\u00eb instanc\u00eb t\u00eb ve\u00e7ant\u00eb.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>\u00c7far\u00eb opionesh ka?<\/p>\n<p><\/p>\n<ul>\n<li>Zgjidhja m\u00eb e shtrenjt\u00eb dhe m\u00eb e pasur \u00ebsht\u00eb Redis-Enterprise. Kjo \u00ebsht\u00eb nj\u00eb zgjidhje e kutis\u00eb me mb\u00ebshtetje t\u00eb plot\u00eb teknike. Pavar\u00ebsisht se si duket e p\u00ebrsosur nga aspekti teknik, nuk na p\u00ebrputhej p\u00ebr arsye ideologjike. <\/li>\n<li>Redis-kluster. Ka rasti kaq shum\u00eb mb\u00ebshtetje p\u00ebr kalimin e fatkeq\u00ebsive dhe shardimin. Nd\u00ebrfaqja \u00ebsht\u00eb pothuajse e nj\u00ebjt\u00eb me versionin e zakonsh\u00ebm. Duket premtuese, do t\u00eb flasim m\u00eb von\u00eb p\u00ebr pengesat.<\/li>\n<li>Tarantool, Memcache, Aerospike dhe t\u00eb tjer\u00eb. T\u00eb gjitha k\u00ebto mjete b\u00ebjn\u00eb m\u00eb shum\u00eb ose m\u00eb pak t\u00eb nj\u00ebjt\u00ebn gj\u00eb. Por secili ka disavantazhet e tij. Ne vendos\u00ebm t\u00eb mos i vendosim t\u00eb gjitha vez\u00ebt n\u00eb nj\u00eb shport\u00eb. Memcache dhe Tarantool i p\u00ebrdorim p\u00ebr detyra t\u00eb tjera, dhe, para se t\u00eb kalojm\u00eb m\u00eb tej, do t\u00eb thuash 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\">Specifikat e p\u00ebrdorimit<\/h1>\n<p><\/p>\n<p>Le t\u00eb shohim cilat detyra kemi zgjidhur historikisht me Redis dhe cil\u00ebn funksionalitet e kemi p\u00ebrdorur:<\/p>\n<p><\/p>\n<ul>\n<li>Kesh para k\u00ebrkesave ndaj sh\u00ebrbimeve t\u00eb larg\u00ebta si 2GIS | Golang<br \/>\n<blockquote><p>MERRNI MGET MSET \"P\u00cbRZGJIDH DB\"\n<\/p><\/blockquote>\n<\/li>\n<li>Kesh para MYSQL | PHP<br \/>\n<blockquote><p>MERRNI MGET MSET SCAN \"\u00c7ELSI SIPAS P\u00cbRMLEDHJES\" \"P\u00cbRZGJIDH DB\"\n<\/p><\/blockquote>\n<\/li>\n<li>Depoja kryesore p\u00ebr sh\u00ebrbimin e menaxhimit t\u00eb sesioneve dhe koordinatave t\u00eb shofer\u00ebve | Golang<br \/>\n<blockquote><p>MERRNI MGET MSET \"P\u00cbRZGJIDH DB\" \"SHTO \u00c7ELSIN GJEOGRAFIKE\" \"MERR \u00c7ELSIN GJEOGRAFIKE\" SCAN\n<\/p><\/blockquote>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Si\u00e7 e shihni, nuk ka matematik\u00eb t\u00eb lart\u00eb. \u00c7far\u00eb \u00ebsht\u00eb at\u00ebher\u00eb e v\u00ebshtira? Le t\u00eb shqyrtojm\u00eb secil\u00ebn metod\u00eb ve\u00e7mas.<\/p>\n<p><\/p>\n<p>Metoda<br \/>\nP\u00ebrshkrimi<br \/>\nKarakteristikat e Redis-kluster<br \/>\nZgjidhja<\/p>\n<p>GET SET<br \/>\nShkruaj\/merr \u00e7el\u00ebsin<\/p>\n<p>MGET MSET<br \/>\nShkruaj\/merr disa \u00e7el\u00ebsa<br \/>\n\u00c7el\u00ebt 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 pipeline nga N operacione GET.<\/p>\n<p>P\u00ebrzgjidh 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 t\u00eb dh\u00ebnat n\u00eb nj\u00eb baz\u00eb. Shtoni prefikse te \u00e7el\u00ebsat.<\/p>\n<p>SCAN<br \/>\nKaloni p\u00ebrmes t\u00eb gjitha \u00e7el\u00ebsave n\u00eb baz\u00eb.<br \/>\nPasi q\u00eb kemi nj\u00eb baz\u00eb, kalimi p\u00ebrmes t\u00eb gjith\u00eb \u00e7el\u00ebsave n\u00eb kluster \u00ebsht\u00eb shum\u00eb i shtrenjt\u00eb.<br \/>\nMbani invariantin brenda nj\u00eb \u00e7el\u00ebsi dhe b\u00ebni HSCAN mbi k\u00ebt\u00eb \u00e7el\u00ebs. Ose hiqeni krejt\u00ebsisht.<\/p>\n<p>GEO<br \/>\nOperacionet e pun\u00ebs me \u00e7el\u00ebsin gjeografik.<br \/>\n\u00c7el\u00ebsi gjeografik nuk shardohet.<\/p>\n<p>KEY BY PATTERN<br \/>\nK\u00ebrko \u00e7el\u00ebsin sipas modelit.<br \/>\nPasi kemi nj\u00eb baz\u00eb, do t\u00eb k\u00ebrkojm\u00eb p\u00ebr t\u00eb gjith\u00eb \u00e7el\u00ebsat n\u00eb kluster. Shum\u00eb e shtrenjt\u00eb.<br \/>\nHiqni dor\u00eb ose mbani invariantin, si\u00e7 \u00ebsht\u00eb rasti me SCAN-in.<\/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 n\u00eb nj\u00eb kluster t\u00eb dh\u00ebna q\u00eb nuk lidhen logjikisht, do t\u00eb duhet t\u00eb b\u00ebjm\u00eb disa zgjidhje si prefiksat. <\/li>\n<li>Humbasim t\u00eb gjitha operacionet \u2018n\u00eb baz\u00eb\u2019, si SCAN, DBSIZE, CLEAR DB etj.<\/li>\n<li>Multi-operator\u00ebt jan\u00eb b\u00ebr\u00eb ndjesh\u00ebm m\u00eb t\u00eb komplikuar p\u00ebr t'u realizuar, sepse mund t\u00eb k\u00ebrkohet qasja n\u00eb disa node.<\/li>\n<\/ul>\n<\/li>\n<li>P\u00ebrpar\u00ebsit\u00eb: \n<ul>\n<li>Q\u00ebndrueshm\u00ebria n\u00eb m\u00ebnyr\u00eb t\u00eb sigurt si kalim emergjence i masterit.<\/li>\n<li>Segmentimi 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 ndalesa.<\/li>\n<li>Shtimi dhe rip\u00ebrndarja e kapaciteteve dhe ngarkesave pa ndalesa.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p><em>Do ta b\u00ebja p\u00ebrfundimin se n\u00ebse nuk keni nevoj\u00eb p\u00ebr nj\u00eb nivel t\u00eb lart\u00eb q\u00ebndrushm\u00ebrie, at\u00ebher\u00eb kalimi n\u00eb klaster nuk ia vlen, pasi kjo 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 nuk \u00ebsht\u00eb m\u00eb i keq dhe p\u00ebr m\u00eb tep\u00ebr do t'ju heq\u00eb disa nga dhimbjet e kok\u00ebs.<\/em><\/p>\n<p><\/p>\n<h1 id=\"podgotovka-k-pereezdu\">P\u00ebrgatitja p\u00ebr kalim<\/h1>\n<p><\/p>\n<p>Le t\u00eb fillojm\u00eb me k\u00ebrkesat p\u00ebr kalim:<\/p>\n<p><\/p>\n<ul>\n<li>Ai duhet t\u00eb jet\u00eb pa ndalesa. Nj\u00eb ndalim i plot\u00eb i sh\u00ebrbimit p\u00ebr 5 minuta nuk na p\u00ebrshtatet.<\/li>\n<li>Ai duhet t\u00eb jet\u00eb sa m\u00eb i sigurt dhe gradual. D\u00ebshirojm\u00eb t\u00eb kemi nj\u00ebfar\u00eb kontrolli mbi situat\u00ebn. T\u00eb hedhim gjith\u00e7ka menj\u00ebher\u00eb dhe t\u00eb lutemi p\u00ebr butonin e rikthimit nuk d\u00ebshirojm\u00eb.<\/li>\n<li>Minimizimi i humbjeve t\u00eb t\u00eb dh\u00ebnave gjat\u00eb migrimit. Ne e kuptojm\u00eb se do t\u00eb jet\u00eb shum\u00eb e v\u00ebshtir\u00eb t\u00eb migrosh n\u00eb m\u00ebnyr\u00eb atomike, prandaj lejojm\u00eb nj\u00ebfar\u00eb \u00e7regullimi midis t\u00eb dh\u00ebnave n\u00eb Redis-in normal dhe at\u00eb n\u00eb klaster.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"obsluzhivanie-klastera\">Sh\u00ebrbimi i klasterit<\/h1>\n<p><\/p>\n<p>Para se t\u00eb filloni migrimin, duhet t\u00eb mendoni n\u00ebse mund t\u00eb mbani 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, memorie e z\u00ebn\u00eb, numrin e klient\u00ebve, numrin e operacioneve GET, SET, AUTH, etj.<\/li>\n<li>Ekspertiza. P\u00ebrshtypni se nes\u00ebr do t\u00eb keni n\u00ebn p\u00ebrgjegj\u00ebsi nj\u00eb klaster t\u00eb madh. N\u00ebse ai d\u00ebshton, askush p\u00ebrve\u00e7 jush nuk do t\u00eb jet\u00eb n\u00eb gjendje ta riparoj\u00eb. N\u00ebse fillon t\u00eb ngadal\u00ebsohet \u2014 t\u00eb gjith\u00eb do t\u00eb vrapojn\u00eb te ju. N\u00ebse \u00ebsht\u00eb e nevojshme t\u00eb shtoni burime ose t\u00eb shp\u00ebrndani ngarkes\u00ebn \u2014 p\u00ebrs\u00ebri te ju. P\u00ebr t\u00eb mos u thinjur n\u00eb 25, \u00ebsht\u00eb e preferueshme t\u00eb parashikoni k\u00ebto raste dhe t\u00eb kontrolloni paraprakisht se si do t\u00eb sillet teknologjia gjat\u00eb veprimeve t\u00eb ndryshme. Do t\u00eb flasim m\u00eb shum\u00eb p\u00ebr k\u00ebt\u00eb n\u00eb seksionin \"Ekspertiza\".<\/li>\n<li>Monitorimi dhe njoftimet. Kur klasteri d\u00ebshtojn\u00eb, d\u00ebshirojm\u00eb t\u00eb jemi t\u00eb par\u00ebt q\u00eb e din\u00eb. K\u00ebtu ne u kufizuam n\u00eb njoftimin se t\u00eb gjitha nodat kthejn\u00eb t\u00eb nj\u00ebjtin informacion p\u00ebr gjendjen e klasterit (po, ndodhin raste t\u00eb tjera gjithashtu). Problemet e tjera mund t\u00eb vihen re m\u00eb shpejt p\u00ebrmes njoftimeve nga sh\u00ebrbimet e klient\u00ebve t\u00eb Redis.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"pereezd\">Shk\u00ebputja<\/h1>\n<p><\/p>\n<p>Si do t\u00eb b\u00ebjm\u00eb shk\u00ebputjen:<\/p>\n<p><\/p>\n<ul>\n<li>N\u00eb radh\u00eb t\u00eb par\u00eb, duhet t\u00eb p\u00ebrgatisim bibliotek\u00ebn p\u00ebr pun\u00ebn me klasterin. Si baz\u00eb p\u00ebr versionin n\u00eb G\u043e, ne mor\u00ebm go-redis dhe e modifikuam pak sipas nevojave tona. Realizuam metodat Multi p\u00ebrmes pipeline-\u00ebve, si dhe b\u00ebra disa rregullime n\u00eb rregullat e p\u00ebrs\u00ebritjes s\u00eb k\u00ebrkesave. Me versionin p\u00ebr PHP pat\u00ebm m\u00eb shum\u00eb probleme, por n\u00eb fund u ndal\u00ebm n\u00eb php-redis. S\u00eb fundmi, ata zyrtarisht zbatuan mb\u00ebshtetje p\u00ebr klasterin, dhe sipas mendimit ton\u00eb, duket mir\u00eb.<\/li>\n<li>M\u00eb pas, duhet t\u00eb vendosim vet\u00eb klasterin. Kjo b\u00ebhet literalisht n\u00eb dy komanda mbi baz\u00ebn e dosjes s\u00eb konfigurimit. M\u00eb shum\u00eb detaje p\u00ebr konfigurimin do t\u00eb diskutojm\u00eb m\u00eb posht\u00eb.<\/li>\n<li>P\u00ebr migrimin gradual p\u00ebrdorim dry-mode. Duke pasur dy versione t\u00eb bibliotek\u00ebs me t\u00eb nj\u00ebjtin nd\u00ebrfaqe (nj\u00eb p\u00ebr versionin normal dhe nj\u00eb tjet\u00ebr p\u00ebr klasterin), nuk \u00ebsht\u00eb ndonj\u00eb e v\u00ebshtir\u00eb t\u00eb krijosh nj\u00eb mb\u00ebshtjell\u00ebs q\u00eb t\u00eb punoj\u00eb me versionin e ve\u00e7ant\u00eb dhe paralelisht t\u00eb dublosh t\u00eb gjitha k\u00ebrkesat n\u00eb klaster, t\u00eb krahasosh p\u00ebrgjigjet dhe t\u00eb regjistrosh diferencat n\u00eb log (n\u00eb rastin ton\u00eb n\u00eb NewRelic). Duke b\u00ebr\u00eb k\u00ebshtu, edhe n\u00ebse gjat\u00eb nxjerrjes versioni i klasterit d\u00ebshtoj\u00eb, produksioni yn\u00eb nuk do t\u00eb preket. <\/li>\n<li>Duke nxjerr\u00eb klasterin n\u00eb dry-mode, mund t\u00eb shikojm\u00eb qet\u00ebsisht grafik\u00ebn e diferencave t\u00eb p\u00ebrgjigjeve. N\u00ebse p\u00ebrqindja e gabimeve ngadal\u00eb, por sigurt \u00ebsht\u00eb duke shkuar drejt nj\u00eb konstante t\u00eb vog\u00ebl, at\u00ebher\u00eb gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull. Pse ekzistojn\u00eb ende diferenca? Sepse regjistrimi n\u00eb versionin e ve\u00e7ant\u00eb ndodh disa koh\u00eb m\u00eb par\u00eb se n\u00eb klaster, dhe p\u00ebr shkak t\u00eb mikro-nd\u00ebrprerjeve t\u00eb dh\u00ebnat mund t\u00eb dallohen. Thjesht duhen shqyrtuar log\u00ebt e diferencave, dhe n\u00ebse t\u00eb gjitha ato jan\u00eb t\u00eb shpjegueshme nga mos-atomiciteti i regjistrimit, at\u00ebher\u00eb mund t\u00eb vazhdojm\u00eb p\u00ebrpara.<\/li>\n<li>Tani tani mund t\u00eb kaloni dry-mode n\u00eb an\u00ebn tjet\u00ebr. Do t\u00eb shkruajm\u00eb dhe lexojm\u00eb nga klasteri, dhe do t\u00eb ashtu q\u00eb t\u00eb dyfishojm\u00eb n\u00eb nj\u00eb version t\u00eb ve\u00e7ant\u00eb. Pse? Gjat\u00eb jav\u00ebs s\u00eb ardhshme d\u00ebshirojm\u00eb t\u00eb v\u00ebzhgojm\u00eb funksionimin e klasterit. N\u00ebse ndodhi q\u00eb t\u00eb zbulojm\u00eb ndonj\u00eb problem gjat\u00eb ngarkes\u00ebs maksimale, ose n\u00ebse ndonj\u00eb gj\u00eb na ka ikur nga v\u00ebmendja, gjithmon\u00eb do t\u00eb kemi nj\u00eb rikthim emergjent n\u00eb kodin e vjet\u00ebr dhe t\u00eb dh\u00ebnat n\u00eb aktualitet fal\u00eb dry-mode.<\/li>\n<li>Kalon vet\u00ebm p\u00ebr t\u00eb \u00e7aktivizuar dry-mode dhe p\u00ebr t\u00eb demontuar 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 shkurt\u00ebr mbi nd\u00ebrtimin e klasterit.<\/p>\n<p><\/p>\n<p>S\u00eb pari, Redis \u00ebsht\u00eb nj\u00eb depo e t\u00eb dh\u00ebnave me \u00e7el\u00ebsa dhe vlera. \u00c7el\u00ebsi p\u00ebrdor vargje t\u00eb rast\u00ebsishme. Vlerat mund t\u00eb jen\u00eb numra, vargje dhe struktura t\u00eb plota. Ka shum\u00eb prej k\u00ebtyre, por p\u00ebr t\u00eb kuptuar nd\u00ebrtimin e p\u00ebrgjithsh\u00ebm, kjo nuk \u00ebsht\u00eb e r\u00ebnd\u00ebsishme.<br \/>\nNiveli tjet\u00ebr i abstraksionit pas \u00e7el\u00ebsave jan\u00eb slotet (SLOTS). \u00c7do \u00e7el\u00ebs i p\u00ebrket nj\u00eb prej 16,383 slot\u00ebve. Brenda \u00e7do sloti mund t\u00eb ket\u00eb sa t\u00eb doni \u00e7el\u00ebsa. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, t\u00eb gjith\u00eb \u00e7el\u00ebsat shp\u00ebrndahen n\u00eb 16,383 grupe t\u00eb pap\u00ebrputhshme.<br \/>\n<img decoding=\"async\" alt=\"N\u00eb lidhje me kalimin 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>M\u00eb pas, n\u00eb klas\u00ebn duhet t\u00eb ket\u00eb N master-node. \u00c7do node mund t\u00eb p\u00ebrfaq\u00ebsohet si nj\u00eb instanc\u00eb e ve\u00e7ant\u00eb Redis, e cila di gjith\u00e7ka p\u00ebr nodet e tjera brenda klas\u00ebs. \u00c7do master-node p\u00ebrmban nj\u00eb sasi t\u00eb caktuar slotesh. \u00c7do slot i p\u00ebrket vet\u00ebm nj\u00eb master-node. T\u00eb gjith\u00eb slotet duhet t\u00eb shp\u00ebrndahen midis nodave. N\u00ebse ndonj\u00eb slot nuk \u00ebsht\u00eb shp\u00ebrndar\u00eb, at\u00ebher\u00eb \u00e7el\u00ebsat q\u00eb ruhen n\u00eb to nuk do t\u00eb jen\u00eb t\u00eb disponuesh\u00ebm. Ka kuptim t\u00eb nisni \u00e7do master-node n\u00eb nj\u00eb makin\u00eb logjike ose fizike t\u00eb ve\u00e7ant\u00eb. Gjithashtu, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb mbani mend se \u00e7do node funksionon vet\u00ebm n\u00eb nj\u00eb b\u00ebrtham\u00eb, dhe n\u00ebse d\u00ebshironi t\u00eb nisni disa instanc\u00eb Redis n\u00eb nj\u00eb makin\u00eb logjike, sigurohuni q\u00eb ato do t\u00eb funksionojn\u00eb n\u00eb b\u00ebrthama t\u00eb ndryshme (ne nuk e kemi provuar k\u00ebt\u00eb, por n\u00eb teori, gjith\u00e7ka duhet t\u00eb funksionoj\u00eb). N\u00eb thelb, master-node ofrojn\u00eb nj\u00eb sharding t\u00eb zakonsh\u00ebm, dhe m\u00eb shum\u00eb master-node lejojn\u00eb t\u00eb skaloni k\u00ebrkesat p\u00ebr shkruar dhe lexuar.<\/p>\n<p><\/p>\n<p>Pasi i t\u00eb gjitha \u00e7el\u00ebsat ndahen n\u00eb slotet dhe slotet shp\u00ebrndahen n\u00eb master-node, \u00e7do master-node mund t\u00eb ket\u00eb nj\u00eb num\u00ebr t\u00eb pakufizuar slave-node. Brenda \u00e7do lidhjeje t\u00eb till\u00eb \"master-slave\" do t\u00eb funksionoj\u00eb replikimi normal. Slave-t jan\u00eb t\u00eb nevojshme p\u00ebr t\u00eb shkall\u00ebzuar k\u00ebrkesat p\u00ebr lexim dhe p\u00ebr kalimin n\u00eb rast se master-i d\u00ebshton.<br \/>\n<img decoding=\"async\" alt=\"N\u00eb lidhje me kalimin 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 sh\u00ebrbenin mir\u00eb t\u00eb silleshim.<\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb komunikuar me sistemin, ne do t\u00eb p\u00ebrdorim Redis-CLI. Duke qen\u00eb se Redis-i nuk ka nj\u00eb pik\u00eb t\u00eb vetme hyr\u00ebse, operacionet e m\u00ebposhtme mund t\u00eb kryhen n\u00eb ndonj\u00eb nga nodet. N\u00eb secil\u00ebn pik\u00eb, un\u00eb ve\u00e7oj 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 klasterit, tregon list\u00ebn e nodave, rolet e tyre, shp\u00ebrndarjen e slotave etj. Informacione t\u00eb tjera mund t\u00eb merren p\u00ebrmes 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, ka operacionet cluster meet dhe cluster forget. Mbani parasysh se cluster forget duhet t\u00eb aplikohet p\u00ebr \u00c7DO nod, si p\u00ebr mjesht\u00ebrat, ashtu edhe p\u00ebr replikat. Nd\u00ebrsa p\u00ebr cluster meet \u00ebsht\u00eb mjaft t\u00eb thirret vet\u00ebm n\u00eb nj\u00eb nod\u00eb. Ky ndryshim mund t\u00eb jet\u00eb shqet\u00ebsues, prandaj \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb informoheni p\u00ebr t\u00eb para se t\u00eb nisni klasterin n\u00eb prodhim. Shtimi i nj\u00eb nodi realizohet n\u00eb m\u00ebnyr\u00eb t\u00eb sigurt n\u00eb proces dhe nuk ndikon n\u00eb funksionimin e klasterit (\u00e7far\u00eb \u00ebsht\u00eb e logjikshme). N\u00ebse do t\u00eb hiqni nj\u00eb nod\u00eb nga klasteri, duhet t\u00eb siguroheni q\u00eb nuk ka mbetur slot (ndryshe rrezikoni t\u00eb humbni qasjen n\u00eb t\u00eb gjitha \u00e7el\u00ebsat n\u00eb k\u00ebt\u00eb nod). Po ashtu, mos hiqni mjeshtrin q\u00eb ka skllav\u00eb, p\u00ebrndryshe do t\u00eb nisni nj\u00eb votim t\u00eb panevojsh\u00ebm p\u00ebr nj\u00eb mjesht\u00ebr t\u00eb ri. N\u00ebse nuk ka m\u00eb slot n\u00eb nodet, kjo \u00ebsht\u00eb nj\u00eb problem i vog\u00ebl, por pse t\u00eb kemi zgjedhje t\u00eb tep\u00ebrta, kur mund t\u00eb hiqni fillimisht skllav\u00ebt.<\/li>\n<li>N\u00ebse duhet t\u00eb nd\u00ebrrosh p\u00ebrforcimin dhe skllev\u00ebrin me forc\u00eb, komanda cluster failover \u00ebsht\u00eb e p\u00ebrshtatshme. Duke e thirrur at\u00eb n\u00eb luft\u00eb, duhet t\u00eb kuptosh se gjat\u00eb realizimit t\u00eb operacionit, p\u00ebrforcimi do t\u00eb jet\u00eb i paarritsh\u00ebm. Zakonsisht, kalimi ndodhi p\u00ebr m\u00eb pak se nj\u00eb sekond\u00eb, por jo n\u00eb m\u00ebnyr\u00eb atomike. Mund t\u00eb llogarisni q\u00eb nj\u00eb pjes\u00eb e k\u00ebrkesave drejt p\u00ebrforcimit n\u00eb k\u00ebt\u00eb koh\u00eb do t\u00eb p\u00ebrfundoj\u00eb me gabim.<\/li>\n<li>Para para se heq\u00ebn nodet nga klasteri, asnj\u00eb slot nuk duhet t\u00eb mbetet atje. \u00cbsht\u00eb m\u00eb mir\u00eb t'i rishp\u00ebrndahen ato p\u00ebrmes komand\u00ebs cluster reshard. Slots do t\u00eb transferohen nga nj\u00eb master n\u00eb nj\u00eb tjet\u00ebr. E gjith\u00eb operacioni mund t\u00eb marr\u00eb disa minuta, var\u00ebsisht nga volumi i t\u00eb dh\u00ebnave q\u00eb po transferohen, megjithat\u00eb procesi i transferimit \u00ebsht\u00eb i sigurt dhe nuk ka ndonj\u00eb ndikim n\u00eb funksionimin e klasterit. K\u00ebshtu, t\u00eb gjitha t\u00eb dh\u00ebnat mund t\u00eb transferohen nga nj\u00eb nod n\u00eb nj\u00eb tjet\u00ebr n\u00ebn ngarkes\u00eb dhe t\u00eb mos shqet\u00ebsoheni p\u00ebr disponueshm\u00ebrin\u00eb e tyre. Megjithat\u00eb, ka edhe nuanca. S\u00eb pari, transferimi i t\u00eb dh\u00ebnave lidhet me nj\u00eb ngarkes\u00eb t\u00eb caktuar n\u00eb nodin marr\u00ebs dhe at\u00eb d\u00ebrgues. N\u00ebse nodi marr\u00ebs \u00ebsht\u00eb tashm\u00eb shum\u00eb i ngarkuar p\u00ebr sa i p\u00ebrket CPU-s\u00eb, nuk duhet ta ngarkoni at\u00eb edhe me pranimin e t\u00eb dh\u00ebnave t\u00eb reja. S\u00eb dyti, sa her\u00eb q\u00eb asnj\u00eb slot nuk do t\u00eb mbetet n\u00eb masterin e d\u00ebrguesit, t\u00eb gjitha slave-t e tij do t\u00eb kalojn\u00eb menj\u00ebher\u00eb te masteri n\u00eb t\u00eb cilin k\u00ebto slots jan\u00eb transferuar. Problemi \u00ebsht\u00eb se t\u00eb gjitha k\u00ebto slave do t\u00eb duan t\u00eb sinkronizohen me t\u00eb dh\u00ebnat nj\u00ebher\u00ebsh. Dhe do t'ju faturohet n\u00ebse kjo do t\u00eb jet\u00eb sinkronizim pjesor, e jo i plot\u00eb. Merini parasysh k\u00ebto, dhe kombinoni operacionet e transferimit t\u00eb slots dhe shk\u00ebputjes\/transfert\u00ebs s\u00eb slave-ve. Ose shpresoni q\u00eb keni nj\u00eb rezerv\u00eb t\u00eb mjaftueshme.<\/li>\n<li>\u00c7far\u00eb t\u00eb b\u00ebni n\u00ebse gjat\u00eb transferimit zbuloni se keni humbur disa slot-e? Shpresoj q\u00eb kjo problematik\u00eb t\u00eb mos ju prek\u00eb, por n\u00ebse ndodh, ka operacionin cluster fix. Ai do t\u00eb shp\u00ebrndaj\u00eb slotet n\u00eb nodet n\u00eb rend t\u00eb rast\u00ebsish\u00ebm. Ju rekomandoj t\u00eb kontrolloni funksionimin e saj, duke fshir\u00eb paraprakisht nga klasteri nodin me slotet e shp\u00ebrndara. Duke qen\u00eb se t\u00eb dh\u00ebnat n\u00eb slotet e pa shp\u00ebrndara tani jan\u00eb t\u00eb paqasshme, nuk ka koh\u00eb p\u00ebr t'u shqet\u00ebsuar p\u00ebr problemet me aksesin e k\u00ebtyre slot-eve. Nga ana tjet\u00ebr, operacioni nuk do t\u00eb ndikoj\u00eb n\u00eb slotet e shp\u00ebrndara.<\/li>\n<li>Nj\u00eb operacion tjet\u00ebr i dobish\u00ebm \u00ebsht\u00eb monitor. Ai lejon n\u00eb koh\u00eb reale t\u00eb shihni t\u00eb gjith\u00eb list\u00ebn e k\u00ebrkesave q\u00eb shkojn\u00eb n\u00eb nod. P\u00ebr m\u00eb tep\u00ebr, mund t\u00eb b\u00ebni grep mbi t\u00eb p\u00ebr t\u00eb m\u00ebsuar n\u00ebse ka trafikun e nevojsh\u00ebm.<\/li>\n<\/ul>\n<p><\/p>\n<p>Duhet p\u00ebrmendur gjithashtu procedura e kalimit emergjent t\u00eb masterit. N\u00ebse flasim shkurt, ajo ekziston dhe, sipas mendimit tim, funksionon shk\u00eblqyer. Megjithat\u00eb, nuk duhet t\u00eb mendoni se n\u00ebse hiqni kabllon nga priz\u00eb n\u00eb makin\u00ebn me nodin master, Redis do t\u00eb kaloj\u00eb menj\u00ebher\u00eb dhe klient\u00ebt nuk do ta v\u00ebrejn\u00eb humbjen. Nga p\u00ebrvoja ime, kalimi ndodh pas disa sekondash. Gjat\u00eb k\u00ebtij kohe, nj\u00eb pjes\u00eb e t\u00eb dh\u00ebnave do t\u00eb jet\u00eb e pa aksesueshme: zbulohet pavlefshm\u00ebria e masterit, nodet votojn\u00eb p\u00ebr nj\u00eb t\u00eb ri, skllav\u00ebt kalojn\u00eb, t\u00eb dh\u00ebnat sinkronizohen. M\u00ebnyra m\u00eb e mir\u00eb p\u00ebr t\u00eb konfirmuar vet\u00eb se skema funksionon \u00ebsht\u00eb t\u00eb zhvilloni st\u00ebrvitje lokale. Ngrihuni nj\u00eb klaster n\u00eb laptopin tuaj, jepni nj\u00eb ngarkes\u00eb minimale, imitoni r\u00ebnien (p\u00ebr shembull, duke bllokuar portet), vler\u00ebsoni shpejt\u00ebsin\u00eb e kalimit. N\u00eb mendimin tim, vet\u00ebm pas disa dit\u00ebsh loj\u00eb n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, mund t\u00eb jeni t\u00eb sigurt p\u00ebr funksionimin e teknologjis\u00eb. Ose, ndoshta, t\u00eb shpresoni se softueri q\u00eb p\u00ebrdoret nga gjysma e internetit me siguri 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, \u00ebsht\u00eb e pamb\u00ebshtetur t\u00eb prek\u00ebsh konfigurimin. Duhen p\u00ebrpjekje t\u00eb caktuara p\u00ebr t\u00eb detyruar veten t\u00eb kthehesh n\u00eb cil\u00ebsime dhe t'i shqyrtosh ato me kujdes. Nga ajo q\u00eb kam parasysh, kemi pasur t\u00eb pakt\u00ebn dy d\u00ebshtime t\u00eb r\u00ebnda p\u00ebr shkak t\u00eb moskujdesit 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, pas s\u00eb cil\u00ebs mbyllen lidhjet e paaktivizuara (n\u00eb sekonda). 0 \u2014 nuk mbyllen<\/em><br \/>\nJo \u00e7do bibliotek\u00eb jon\u00eb ishte n\u00eb gjendje t\u00eb mbyllte lidhjet si\u00e7 duhet. Duke \u00e7aktivizuar k\u00ebt\u00eb cil\u00ebsim, b\u00ebjm\u00eb rrezik t\u00eb arrijm\u00eb limitin e numrit t\u00eb klient\u00ebve. N\u00eb an\u00ebn tjet\u00ebr, n\u00ebse kemi nj\u00eb problem t\u00eb till\u00eb, ndarja automatike e lidhjeve t\u00eb humbura do ta maskoj\u00eb at\u00eb, dhe ne mund t\u00eb mos e v\u00ebm\u00eb re. Gjithashtu, 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 e aktivizuar, kur RDB-snapshot-i prishet, master-i do t\u00eb ndaloj\u00eb t\u00eb pranoj\u00eb k\u00ebrkesa p\u00ebr ndryshime. N\u00ebse lidhja me master-in humbet, skllavi mund t\u00eb vazhdoj\u00eb t\u00eb p\u00ebrgjigjet ndaj k\u00ebrkesave (po). Ose do t\u00eb ndaloj\u00eb t\u00eb p\u00ebrgjigjet (jo)<\/em><br \/>\nNuk jemi t\u00eb k\u00ebnaqur me situat\u00ebn ku Redis shnd\u00ebrrohet n\u00eb nj\u00eb kallpem.<\/li>\n<li>repl-ping-slave-period 5<br \/>\n<em>Pas k\u00ebsaj periudhe kohe, do t\u00eb fillojm\u00eb t\u00eb shqet\u00ebsohemi se master-i ka d\u00ebshtuar dhe \u00ebsht\u00eb koha p\u00ebr t\u00eb kryer procedur\u00ebn e kalimit.<\/em><br \/>\nDo t\u00eb duhet t\u00eb gjejm\u00eb manualisht ekuilibrin midis sinjaleve t\u00eb rreme dhe fillimit t\u00eb kalimit. 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 buffer p\u00ebr nj\u00eb skllav q\u00eb ka humbur lidhjen. N\u00ebse buffer-i p\u00ebrfundon, do t\u00eb duhet 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 cilat skllavi mund t\u00eb filloj\u00eb t\u00eb vonohet \u00ebsht\u00eb mjaftuesh\u00ebm. N\u00ebse ai vonohet, ka shum\u00eb t\u00eb ngjar\u00eb q\u00eb master-i juaj t\u00eb ket\u00eb probleme dhe sinkronizimi i plot\u00eb do t\u00eb jet\u00eb pik\u00eb e fundit.<\/li>\n<li>maxclients 10000<br \/>\n<em>Numri maksimal i klient\u00ebve n\u00eb nj\u00eb koh\u00eb t\u00eb caktuar.<\/em><br \/>\nNga eksperienca jon\u00eb, \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb vendosni nj\u00eb vler\u00eb m\u00eb t\u00eb lart\u00eb. Redis e menaxhon shum\u00eb mir\u00eb me 10,000 lidhje. Thjesht sigurohuni q\u00eb sistemi t\u00eb ket\u00eb mjaft soket\u00eb. <\/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 vet\u00eb rregulli, por kuptimi i m\u00ebnyr\u00ebs se si do t\u00eb ndodh\u00eb. Redis meriton lavd\u00ebrime p\u00ebr aft\u00ebsin\u00eb e tij p\u00ebr t\u00eb funksionuar 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>Nd\u00ebrkoh\u00eb q\u00eb vet\u00eb Redis ruan t\u00eb gjitha informacionet n\u00eb memorien operative, ekziston gjithashtu 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 gjith\u00eb t\u00eb dh\u00ebnave. Caktohet me definimin 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 jan\u00eb ndryshuar t\u00eb pakt\u00ebn Y \u00e7el\u00ebsa'.<\/li>\n<li>Skedari i vet\u00ebm t\u00eb shtohet \u2014 nj\u00eb list\u00eb operacionesh n\u00eb rendin e ekzekutimit t\u00eb tyre. Shton operacionet e reja n\u00eb skedar \u00e7do X sekonda ose \u00e7do Y operacione.<\/li>\n<li>RDB dhe AOF \u2014 kombinimi i dy metodave t\u00eb m\u00ebsip\u00ebrme.<\/li>\n<\/ul>\n<p><\/p>\n<p>T\u00eb gjitha metodat kan\u00eb p\u00ebrpar\u00ebsit\u00eb dhe disavantazhet e tyre, nuk do t'i p\u00ebrmend t\u00eb gjitha; thjesht do t'i kushtoj v\u00ebmendje momenteve q\u00eb n\u00eb mendimin tim nuk jan\u00eb t\u00eb dukshme.<\/p>\n<p><\/p>\n<p>S\u00eb pari, p\u00ebr t\u00eb ruajtur nj\u00eb snapshot RDB, k\u00ebrkohet t\u00eb thirret FORK. N\u00ebse ka shum\u00eb t\u00eb dh\u00ebna, kjo mund t\u00eb ndaloj\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 ka nevoj\u00eb t\u00eb rezervoj\u00eb memorie p\u00ebr nj\u00eb snapshot t\u00eb till\u00eb, \u00e7ka \u00e7on n\u00eb nevoj\u00ebn p\u00ebr t\u00eb mbajtur dyfishin e rezerv\u00ebs s\u00eb memorie n\u00eb nj\u00eb server logjik: n\u00ebse p\u00ebr Redis jan\u00eb rezervuar 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>S\u00eb dyti, ka probleme me sinkronizimin e pjessh\u00ebm. N\u00eb modalitetin AOF, gjat\u00eb rip\u00ebrkthimit t\u00eb skllavit n\u00eb vend t\u00eb sinkronizimit t\u00eb pjessh\u00ebm mund t\u00eb kryhet nj\u00eb sinkronizim i plot\u00eb. Pse ndodh k\u00ebshtu, nuk kam arritur ta kuptoj. Por \u00ebsht\u00eb mir\u00eb ta mbash mend k\u00ebt\u00eb.<\/p>\n<p><\/p>\n<p>K\u00ebto dy pika na b\u00ebjn\u00eb t\u00eb mendojm\u00eb n\u00ebse na duhen k\u00ebto t\u00eb dh\u00ebna n\u00eb disk, n\u00ebse gjith\u00e7ka p\u00ebrs\u00ebritet nga slave-t. Mund t\u00eb humbasim t\u00eb dh\u00ebnat vet\u00ebm n\u00eb rast se t\u00eb gjitha slave-t dalin jasht\u00eb funksionit, dhe kjo \u00ebsht\u00eb nj\u00eb problem n\u00eb nivelin e \"zjarrit n\u00eb Qendr\u00ebn e T\u00eb Dh\u00ebnave\". Si nj\u00eb kompromis, mund t\u00eb propozojm\u00eb q\u00eb t\u00eb ruajm\u00eb t\u00eb dh\u00ebnat vet\u00ebm n\u00eb slave, por n\u00eb k\u00ebt\u00eb rast, duhet t\u00eb sigurohemi q\u00eb k\u00ebto slave kurr\u00eb t\u00eb mos b\u00ebhen master gjat\u00eb rikuperimit t\u00eb emergjenc\u00ebs (p\u00ebr k\u00ebt\u00eb ekziston nj\u00eb cil\u00ebsim prioritari p\u00ebr slave n\u00eb konfigurimin e tyre). Ne n\u00eb \u00e7do rast konkret mendojm\u00eb n\u00ebse duhet t\u00eb ruajm\u00eb t\u00eb dh\u00ebnat n\u00eb disk dhe shpesh her\u00eb p\u00ebrgjigjemi \"jo\".<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">P\u00ebrfundimi<\/h1>\n<p><\/p>\n<p>N\u00eb p\u00ebrfundim, shpresoj se kam arritur t\u00eb jap nj\u00eb pasqyr\u00eb t\u00eb p\u00ebrgjithshme t\u00eb funksionimit t\u00eb redis-cluster p\u00ebr ata q\u00eb nuk kan\u00eb d\u00ebgjuar fare p\u00ebr t\u00eb, si dhe t\u00eb theksoj disa \u00e7\u00ebshtje q\u00eb nuk jan\u00eb t\u00eb qarta p\u00ebr ata q\u00eb e p\u00ebrdorin prej koh\u00ebsh.<br \/>\nFaleminderit p\u00ebr koh\u00ebn e dh\u00ebn\u00eb dhe, si zakonisht, komentet n\u00eb lidhje me tem\u00ebn jan\u00eb t\u00eb mir\u00ebseardhura.<\/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 4.9.10 - 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 \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\" \/>\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) 4.9.10\" \/>\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 \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\" \/>\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\udd47 mbi kalimin nga Redis n\u00eb Redis-cluster | ProHoster","description":"Kur po ecur n\u00eb nj\u00eb produkt q\u00eb \u00ebsht\u00eb duke u zhvilluar p\u00ebr m\u00eb shum\u00eb se nj\u00eb dekad\u00eb, nuk \u00ebsht\u00eb e habitshme t\u00eb hasen teknologji t\u00eb vjetra. Por \u00e7far\u00eb ndodh n\u00ebse pas gjasht\u00eb muajsh duhet t\u00eb mbani nj\u00eb ngarkes\u00eb 10 her\u00eb m\u00eb t\u00eb lart\u00eb, dhe kostoja e r\u00ebnieve rritet n\u00eb qindra her\u00eb? N\u00eb k\u00ebt\u00eb rast, ju nevojitet nj\u00eb Inxhinier i shk\u00eblqyer Highload. Por p\u00ebr munges\u00eb t\u00eb nj\u00eb t\u00eb till\u00eb, problemi iu besua mua. N\u00eb fillim","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 \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","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"},"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}]}}