{"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\/hu\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster","title":{"rendered":"\u00c1tt\u00e9r\u00e9s a Redisr\u00f3l a Redis-clusterre","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"\u00c1tt\u00e9r\u00e9s a Redisr\u00f3l a Redis-clusterre\" src=\"\/wp-content\/uploads\/2020\/08\/ea8bc47f73ef3b06ccfdf94d323592bf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ha t\u00f6bb mint egy \u00e9vtizede fejl\u0151d\u0151 term\u00e9kr\u0151l van sz\u00f3, egy\u00e1ltal\u00e1n nem meglep\u0151, hogy elavult technol\u00f3gi\u00e1kkal tal\u00e1lkozunk benne. De mi van, ha f\u00e9l \u00e9v m\u00falva t\u00edzszeres terhel\u00e9st kell kezelnie, \u00e9s a le\u00e1ll\u00e1sok k\u00f6lts\u00e9gei sz\u00e1zszoros\u00e1ra n\u0151nek? Ebben az esetben sz\u00fcks\u00e9ge van egy kiv\u00e1l\u00f3 Highload Engineerre. De mivel nem \u00e1llt rendelkez\u00e9sre ilyesfajta seg\u00edts\u00e9g, a probl\u00e9m\u00e1t nekem kellett megoldanom. A cikk els\u0151 r\u00e9sz\u00e9ben arr\u00f3l mes\u00e9lek, hogyan k\u00f6lt\u00f6zt\u00fcnk a Redisr\u00f3l a Redis-clusterre, a m\u00e1sodik r\u00e9szben pedig tan\u00e1csokat adok, hogyan kezdj\u00fcnk el haszn\u00e1lni egy klustert, \u00e9s mire \u00e9rdemes figyelni a m\u0171k\u00f6dtet\u00e9se sor\u00e1n.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"vybor-tehnologii\">Technol\u00f3gia v\u00e1laszt\u00e1s<\/h1>\n<p><\/p>\n<p>Olyan rossz lenne <em>k\u00fcl\u00f6n\u00e1ll\u00f3 Redis<\/em> (standalone redis) az 1 mester \u00e9s N slave konfigur\u00e1ci\u00f3ban? Mi\u00e9rt nevezem elavult technol\u00f3gi\u00e1nak?<\/p>\n<p><\/p>\n<blockquote><p>Nem, a Redis nem olyan rossz\u2026 Azonban vannak bizonyos hi\u00e1nyoss\u00e1gai, amelyeket nem lehet figyelmen k\u00edv\u00fcl hagyni.<\/p><\/blockquote>\n<p><\/p>\n<ul>\n<li>\n<p>El\u0151sz\u00f6r is, a Redis nem t\u00e1mogatja a mester le\u00e1ll\u00e1s ut\u00e1ni helyre\u00e1ll\u00edt\u00e1si mechanizmusokat. E probl\u00e9ma megold\u00e1s\u00e1ra egy automatikus VIP \u00e1tkapcsol\u00e1si konfigur\u00e1ci\u00f3t haszn\u00e1ltunk, ami lehet\u0151v\u00e9 tette a masterre val\u00f3 v\u00e1lt\u00e1st, egyes slave-ek szerep\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1t \u00e9s a t\u00f6bbi \u00e1tkapcsol\u00e1s\u00e1t. Ez a mechanizmus m\u0171k\u00f6d\u00f6tt, de nem nevezhet\u0151 megb\u00edzhat\u00f3 megold\u00e1snak. El\u0151sz\u00f6r is, hamis riaszt\u00e1sok l\u00e9ptek fel, m\u00e1sodszor pedig egyszer haszn\u00e1latos volt, \u00e9s aktiv\u00e1l\u00e1sa ut\u00e1n manu\u00e1lis l\u00e9p\u00e9sek sz\u00fcks\u00e9gesek a mechanizmus \u00fajraind\u00edt\u00e1s\u00e1hoz.<\/p>\n<p>\n<\/li>\n<li>\n<p>M\u00e1sodszor, egyetlen mester megl\u00e9te a shardol\u00e1si probl\u00e9m\u00e1t okozott. T\u00f6bb f\u00fcggetlen '1 mester \u00e9s N slave' klasztert kellett l\u00e9trehozni, majd manu\u00e1lisan elosztani az adatb\u00e1zisokat e g\u00e9pek k\u00f6z\u00f6tt, \u00e9s rem\u00e9lni, hogy az egyik adatb\u00e1zis m\u00e1snap nem n\u0151 olyan nagyra, hogy k\u00fcl\u00f6n instance-be kelljen \u00e1thelyezni.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Milyen lehet\u0151s\u00e9gek vannak?<\/p>\n<p><\/p>\n<ul>\n<li>A legdr\u00e1g\u00e1bb \u00e9s legkifinomultabb megold\u00e1s a Redis-Enterprise. Ez egy k\u00e9sz megold\u00e1s teljes technikai t\u00e1mogat\u00e1ssal. Annak ellen\u00e9re, hogy technikai szempontb\u00f3l t\u00f6k\u00e9letesnek t\u0171nik, ideol\u00f3giai okokb\u00f3l nem volt megfelel\u0151 sz\u00e1munkra. <\/li>\n<li>Redis-cluster. Be\u00e9p\u00edtett t\u00e1mogat\u00e1sa van a mester \u00e1tkapcsol\u00e1s\u00e1nak \u00e9s a shardol\u00e1snak. A fel\u00fclet szinte nem k\u00fcl\u00f6nb\u00f6zik a norm\u00e1l verzi\u00f3t\u00f3l. \u00cdg\u00e9retesnek t\u0171nik, a neh\u00e9zs\u00e9gekr\u0151l k\u00e9s\u0151bb besz\u00e9l\u00fcnk.<\/li>\n<li>Tarantool, Memcache, Aerospike \u00e9s m\u00e1sok. Mindezek az eszk\u00f6z\u00f6k k\u00f6r\u00fclbel\u00fcl ugyanazt csin\u00e1lj\u00e1k. De mindegyiknek megvannak a saj\u00e1t h\u00e1tr\u00e1nyai. \u00dagy d\u00f6nt\u00f6tt\u00fcnk, hogy nem tessz\u00fck az \u00f6sszes toj\u00e1st egy kos\u00e1rba. A Memcache-t \u00e9s a Tarantool-t m\u00e1s feladatokhoz haszn\u00e1ljuk, \u00e9s, hogy el\u0151re mondjam, a gyakorlatunkban t\u00f6bb probl\u00e9m\u00e1nk is volt vel\u00fck.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"specifika-ispolzovaniya\">Felhaszn\u00e1l\u00e1si saj\u00e1toss\u00e1gok<\/h1>\n<p><\/p>\n<p>N\u00e9zz\u00fck meg, hogy milyen feladatokat oldottunk meg t\u00f6rt\u00e9nelmileg a Redis-szel \u00e9s milyen funkci\u00f3kat haszn\u00e1ltunk:<\/p>\n<p><\/p>\n<ul>\n<li>Cache t\u00e1voli szolg\u00e1ltat\u00e1sokhoz, mint p\u00e9ld\u00e1ul a 2GIS | Golang<br \/>\n<blockquote><p>GET SET MGET MSET \"SELECT DB\"\n<\/p><\/blockquote>\n<\/li>\n<li>Cache a MYSQL el\u0151tt | PHP<br \/>\n<blockquote><p>GET SET MGET MSET SCAN \"KEY BY PATTERN\" \"SELECT DB\"\n<\/p><\/blockquote>\n<\/li>\n<li>Alap t\u00e1rol\u00f3 a munkamenetek \u00e9s a sof\u0151r\u00f6k koordin\u00e1t\u00e1inak kezel\u00e9s\u00e9hez | Golang<br \/>\n<blockquote><p>GET SET MGET MSET \"SELECT DB\" \"ADD GEO KEY\" \"GET GEO KEY\" SCAN\n<\/p><\/blockquote>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Ahogy l\u00e1tj\u00e1tok, itt nincs sz\u00fcks\u00e9g fels\u0151 matematik\u00e1ra. Mi a neh\u00e9zs\u00e9g akkor? N\u00e9zz\u00fck meg k\u00fcl\u00f6n-k\u00fcl\u00f6n minden m\u00f3dszert.<\/p>\n<p><\/p>\n<p>M\u00f3dszer<br \/>\nLe\u00edr\u00e1s<br \/>\nRedis-cluster saj\u00e1toss\u00e1gai<br \/>\nMegold\u00e1s<\/p>\n<p>GET SET<br \/>\nKulcs \u00edr\u00e1sa\/olvas\u00e1sa<\/p>\n<p>MGET MSET<br \/>\nT\u00f6bb kulcs \u00edr\u00e1sa\/olvas\u00e1sa<br \/>\nA kulcsok k\u00fcl\u00f6nb\u00f6z\u0151 csom\u00f3pontokon lesznek. A k\u00e9sz k\u00f6nyvt\u00e1rak csak egy csom\u00f3ponton bel\u00fcl tudj\u00e1k v\u00e9grehajtani a Multi-m\u0171veleteket.<br \/>\nCser\u00e9lje le az MGET-et N GET m\u0171velet pipeline-ra<\/p>\n<p>SELECT DB<br \/>\nV\u00e1lasszon egy adatb\u00e1zist, amellyel dolgozni fogunk<br \/>\nT\u00f6bb adatb\u00e1zis nem t\u00e1mogatott<br \/>\nMindent egy adatb\u00e1zisba helyez\u00fcnk. Prefixeket kell adni a kulcsokhoz.<\/p>\n<p>SCAN<br \/>\nJ\u00e1rja be az \u00f6sszes kulcsot az adatb\u00e1zisban<br \/>\nMivel egy adatb\u00e1zisunk van, az \u00f6sszes kulcs bej\u00e1r\u00e1sa a klaszterben t\u00fal k\u00f6lts\u00e9ges.<br \/>\nFenntartani az invarianci\u00e1t egy kulcs k\u00f6r\u00fcl, \u00e9s HSCAN-t v\u00e9grehajtani ezen a kulcson. Vagy teljesen lemondani.<\/p>\n<p>GEO<br \/>\nM\u0171veletek a geo-kulccsal<br \/>\nA geo-kulcs nem shardolhat\u00f3.<\/p>\n<p>KEY BY PATTERN<br \/>\nKulcs keres\u00e9se mint\u00e1zat alapj\u00e1n<br \/>\nMivel egy adatb\u00e1zisunk van, a klaszterben minden kulcsot \u00e1t kell n\u00e9zni. Ez t\u00fal k\u00f6lts\u00e9ges.<br \/>\nLemondani vagy fenntartani az invarianci\u00e1t, ahogy a SCAN eset\u00e9n.<\/p>\n<p><\/p>\n<h1 id=\"redis-vs-redis-cluster\">Redis vs Redis-cluster<\/h1>\n<p><\/p>\n<p>Mit vesz\u00edt\u00fcnk \u00e9s mit nyer\u00fcnk a klaszterre val\u00f3 \u00e1tt\u00e9r\u00e9ssel?<\/p>\n<p><\/p>\n<ul>\n<li>H\u00e1tr\u00e1nyok: elvesz\u00edtj\u00fck a t\u00f6bb adatb\u00e1zis funkci\u00f3kat. \n<ul>\n<li>Ha logikailag nem \u00f6sszef\u00fcgg\u0151 adatokat akarunk t\u00e1rolni egy klaszterben, prefixekkel kell tr\u00fckk\u00f6zni. <\/li>\n<li>Elvesz\u00edtj\u00fck az \u00f6sszes \"adatb\u00e1zis szint\u0171\" m\u0171veletet, p\u00e9ld\u00e1ul a SCAN, DBSIZE, CLEAR DB stb. m\u0171veleteket.<\/li>\n<li>A Multi-m\u0171veletek jelent\u0151sen bonyolultabb\u00e1 v\u00e1ltak, mivel lehet, hogy t\u00f6bb csom\u00f3ponthoz kell fordulni.<\/li>\n<\/ul>\n<\/li>\n<li>El\u0151ny\u00f6k: \n<ul>\n<li>Hibat\u0171r\u00e9s, mint a f\u0151 felhaszn\u00e1l\u00f3 v\u00e9szkapcsol\u00e1sa.<\/li>\n<li>Shardol\u00e1s a Redis oldal\u00e1n.<\/li>\n<li>Adatok atomisztikus \u00e1tvitele a csom\u00f3pontok k\u00f6z\u00f6tt \u00e9s le\u00e1ll\u00e1sok n\u00e9lk\u00fcl.<\/li>\n<li>Kapacit\u00e1sok \u00e9s terhel\u00e9sek hozz\u00e1ad\u00e1sa \u00e9s \u00fajraeloszt\u00e1sa le\u00e1ll\u00e1sok n\u00e9lk\u00fcl.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p><em>Azt mondan\u00e1m, hogy ha nem sz\u00fcks\u00e9ges a magas szint\u0171 rendelkez\u00e9sre \u00e1ll\u00e1s biztos\u00edt\u00e1sa, akkor nem \u00e9ri meg a migr\u00e1l\u00e1s a klaszterre, mivel ez nem trivi\u00e1lis feladat lehet. De ha eredend\u0151en v\u00e1lasztani kellene a k\u00fcl\u00f6n verzi\u00f3 \u00e9s a klaszter k\u00f6z\u00f6tt, akkor a klasztert \u00e9rdemes v\u00e1lasztani, mivel semmivel sem rosszabb, s\u0151t, cs\u00f6kkenti a fejf\u00e1j\u00e1st.<\/em><\/p>\n<p><\/p>\n<h1 id=\"podgotovka-k-pereezdu\">K\u00e9sz\u00fcl\u0151d\u00e9s a migr\u00e1ci\u00f3ra<\/h1>\n<p><\/p>\n<p>Kezdj\u00fck a migr\u00e1ci\u00f3 k\u00f6vetelm\u00e9nyeivel:<\/p>\n<p><\/p>\n<ul>\n<li>Zavartalanul kell v\u00e9gbemennie. A szolg\u00e1ltat\u00e1s teljes le\u00e1ll\u00edt\u00e1sa 5 percre sz\u00e1munkra nem elfogadhat\u00f3.<\/li>\n<li>Min\u00e9l biztons\u00e1gosabb \u00e9s fokozatosabb kell, hogy legyen. Szeretn\u00e9nk valamilyen kontrollt a helyzet felett. Nem akarunk mindent egyszerre eldobni \u00e9s im\u00e1dkozni a vissza\u00e1ll\u00edt\u00f3 gombra.<\/li>\n<li>Minim\u00e1lis adatveszt\u00e9s a migr\u00e1ci\u00f3 sor\u00e1n. Tudat\u00e1ban vagyunk annak, hogy atomariz\u00e1lva nagyon neh\u00e9z lesz a migr\u00e1ci\u00f3, ez\u00e9rt elengedj\u00fck a bizonyos fok\u00fa adatszinkroniz\u00e1ci\u00f3t a hagyom\u00e1nyos \u00e9s a klaszteres Redis k\u00f6z\u00f6tt.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"obsluzhivanie-klastera\">A klaszter karbantart\u00e1sa<\/h1>\n<p><\/p>\n<p>A migr\u00e1ci\u00f3 el\u0151tt \u00e9rdemes elgondolkodni azon, hogy tudjuk-e t\u00e1mogatni a klasztert:<\/p>\n<p><\/p>\n<ul>\n<li>Grafikonok. A Prometheus-t \u00e9s a Grafana-t haszn\u00e1ljuk a processzorok terhel\u00e9s\u00e9r\u0151l, az elfoglalt mem\u00f3ri\u00e1r\u00f3l, a klienssz\u00e1mr\u00f3l, a GET, SET, AUTH stb. m\u0171veletek sz\u00e1m\u00e1r\u00f3l k\u00e9sz\u00fclt grafikonokhoz.<\/li>\n<li>Szak\u00e9rtelem. K\u00e9pzelje el, hogy holnap egy hatalmas klaszter lesz a felel\u0151ss\u00e9ge alatt. Ha meghib\u00e1sodik, senki, csak \u00d6n tudja megjav\u00edtani. Ha elkezd akadozni \u2013 mindenki \u00d6nhez fog futni. Ha er\u0151forr\u00e1sokat kell hozz\u00e1adni vagy a terhel\u00e9st \u00fajra kell osztani \u2013 ism\u00e9t \u00d6nre h\u00e1rul. Hogy elker\u00fclje, hogy 25 \u00e9vesen meg\u0151sz\u00fclj\u00f6n, \u00e9rdemes el\u0151re gondoskodni ezekr\u0151l az esetekr\u0151l \u00e9s el\u0151re megvizsg\u00e1lni, hogyan fog a technol\u00f3gia viselkedni az egyes int\u00e9zked\u00e9sek sor\u00e1n. Err\u0151l b\u0151vebben az \u201eSzak\u00e9rtelem\u201d r\u00e9szben fogunk besz\u00e9lni.<\/li>\n<li>Monitoring \u00e9s \u00e9rtes\u00edt\u00e9sek. Amikor a klaszter meghib\u00e1sodik, els\u0151k k\u00f6z\u00f6tt szeretn\u00e9nk tudom\u00e1st szerezni r\u00f3la. Mi itt annyira k\u00e9rt\u00fck, hogy \u00e9rtes\u00edt\u00e9st kapjunk, ha az \u00f6sszes node ugyanazt az inform\u00e1ci\u00f3t adja a klaszter \u00e1llapot\u00e1r\u00f3l (igen, el\u0151fordulhat m\u00e1sk\u00e9pp is). A t\u00f6bbi probl\u00e9m\u00e1t gyorsabban \u00e9szlelni a Redis kliensszolg\u00e1ltat\u00e1sok \u00e9rtes\u00edt\u00e9sein kereszt\u00fcl.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"pereezd\">K\u00f6lt\u00f6z\u00e9s<\/h1>\n<p><\/p>\n<p>Hogyan fogunk migr\u00e1lni:<\/p>\n<p><\/p>\n<ul>\n<li>Els\u0151sorban fel kell k\u00e9sz\u00edteni a k\u00f6nyvt\u00e1rat a klaszter m\u0171k\u00f6d\u00e9s\u00e9re. A G\u043e verzi\u00f3 alapjak\u00e9nt a go-redis-t vett\u00fck, \u00e9s kiss\u00e9 m\u00f3dos\u00edtottuk. A Multi-m\u00f3dszereket pipeline-okon kereszt\u00fcl val\u00f3s\u00edtottuk meg, \u00e9s a k\u00e9r\u00e9sism\u00e9tl\u00e9si szab\u00e1lyokat is n\u00e9mileg finom\u00edtottuk. A PHP verzi\u00f3val t\u00f6bb probl\u00e9ma mer\u00fclt fel, de v\u00e9g\u00fcl a php-redis mellett d\u00f6nt\u00f6tt\u00fcnk. Nemr\u00e9giben bevezett\u00e9k a klaszter t\u00e1mogat\u00e1s\u00e1t, ami szerint\u00fcnk j\u00f3l n\u00e9z ki.<\/li>\n<li>Ezut\u00e1n mag\u00e1t a klasztert kell telep\u00edteni. Ez gyakorlatilag k\u00e9t parancs v\u00e9grehajt\u00e1s\u00e1val t\u00f6rt\u00e9nik a konfigur\u00e1ci\u00f3s f\u00e1jl alapj\u00e1n. A be\u00e1ll\u00edt\u00e1st r\u00e9szletesebben az al\u00e1bbiakban vitatjuk meg.<\/li>\n<li>A fokozatos \u00e1t\u00e1ll\u00e1shoz dry-mode-ot haszn\u00e1lunk. Mivel k\u00e9t, azonos interf\u00e9sszel rendelkez\u0151 k\u00f6nyvt\u00e1rverzi\u00f3nk van (az egyik a norm\u00e1l verzi\u00f3, a m\u00e1sik a klaszterhez), nem neh\u00e9z k\u00e9sz\u00edteni egy burkol\u00f3t, amely az egyik verzi\u00f3val m\u0171k\u00f6dik, \u00e9s p\u00e1rhuzamosan minden k\u00e9rd\u00e9st duplik\u00e1l a klaszterbe, \u00f6sszehasonl\u00edtja a v\u00e1laszokat, \u00e9s a k\u00fcl\u00f6nbs\u00e9geket a napl\u00f3ba \u00edrja (az eset\u00fcnkben a NewRelic-be). \u00cdgy ha a klaszter verzi\u00f3 telep\u00edt\u00e9sekor hiba mer\u00fcl fel, az nem \u00e9rinti a termel\u00e9si k\u00f6rnyezet\u00fcnket. <\/li>\n<li>A klaszter dry-\u00fczemm\u00f3dban t\u00f6rt\u00e9n\u0151 kiad\u00e1s\u00e1val nyugodtan figyelhetj\u00fck a v\u00e1laszok elt\u00e9r\u00e9s\u00e9nek grafikonj\u00e1t. Ha a hib\u00e1k ar\u00e1nya lassan, de biztosan egy kis konstans fel\u00e9 mozdul, akkor minden rendben van. Mi\u00e9rt vannak m\u00e9g elt\u00e9r\u00e9sek? Mert a k\u00fcl\u00f6n verzi\u00f3ba val\u00f3 \u00edr\u00e1s egy kicsit kor\u00e1bban t\u00f6rt\u00e9nik, mint a klaszterbe, \u00e9s a mikrolag miatt az adatok elt\u00e9rhetnek. Csak meg kell n\u00e9zni a k\u00fcl\u00f6nbs\u00e9gek napl\u00f3it, \u00e9s ha azok mind \u00e9rthet\u0151ek a nem atomikus \u00edr\u00e1s miatt, akkor lehet tov\u00e1bb haladni.<\/li>\n<li>Most vissza\u00e1ll\u00edthatjuk a dry-mode-ot. \u00cdr\u00e1s \u00e9s olvas\u00e1s most a klaszterb\u0151l fog t\u00f6rt\u00e9nni, mik\u00f6zben duplik\u00e1lunk egy k\u00fcl\u00f6n verzi\u00f3ba. Mi\u00e9rt? A k\u00f6vetkez\u0151 h\u00e9ten szeretn\u00e9nk figyelni a klaszter m\u0171k\u00f6d\u00e9s\u00e9t. Ha esetleg kider\u00fcl, hogy a terhel\u00e9s cs\u00facs\u00e1n probl\u00e9m\u00e1k mer\u00fclnek fel, vagy valamit elfelejtett\u00fcnk, mindig van lehet\u0151s\u00e9g\u00fcnk v\u00e9szhelyzeti visszavon\u00e1sra a r\u00e9gi k\u00f3dra \u00e9s a naprak\u00e9sz adatokra a dry-mode-nak k\u00f6sz\u00f6nhet\u0151en.<\/li>\n<li>Most m\u00e1r csak a dry-mode kikapcsol\u00e1sa \u00e9s a k\u00fcl\u00f6n verzi\u00f3 elt\u00e1vol\u00edt\u00e1sa maradt h\u00e1tra. <\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"ekspertiza\">Szaktud\u00e1s<\/h1>\n<p><\/p>\n<p>El\u0151sz\u00f6r is, r\u00f6viden a klaszter fel\u00e9p\u00edt\u00e9s\u00e9r\u0151l.<\/p>\n<p><\/p>\n<p>Els\u0151sorban a Redis \u2013 egy kulcs-\u00e9rt\u00e9k t\u00e1rol\u00f3. A kulcsk\u00e9nt tetsz\u0151leges karakterl\u00e1ncok haszn\u00e1lhat\u00f3k. Az \u00e9rt\u00e9kek lehetnek sz\u00e1mok, karakterl\u00e1ncok \u00e9s \u00f6sszetett strukt\u00far\u00e1k. Ut\u00f3bbib\u00f3l rengeteg van, de a teljes fel\u00e9p\u00edt\u00e9s meg\u00e9rt\u00e9s\u00e9hez ez nem fontos.<br \/>\nA k\u00f6vetkez\u0151 absztrakci\u00f3s szint a slotok (SLOTS). Minden kulcs egy a 16 383 slot k\u00f6z\u00fcl tartozik. Minden slotban b\u00e1rmennyi kulcs lehet. \u00cdgy a kulcsok 16 383 diszjunkt halmazra oszthat\u00f3k.<br \/>\n<img decoding=\"async\" alt=\"\u00c1tt\u00e9r\u00e9s a Redisr\u00f3l a Redis-clusterre\" src=\"\/wp-content\/uploads\/2020\/08\/a5e4be23381b42287f693e01d5d59a99.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ezut\u00e1n a klaszterben N mester-n\u00f3dnak kell lennie. Minden n\u00f3dot egy k\u00fcl\u00f6n Redis p\u00e9ld\u00e1nyk\u00e9nt k\u00e9pzelhet\u00fcnk el, amely tud mindent a klaszter t\u00f6bbi n\u00f3dj\u00e1r\u00f3l. Minden mester-n\u00f3d tartalmaz n\u00e9h\u00e1ny slotot. Minden slot csak egy mester-n\u00f3dhoz tartozik. A slotokat el kell osztani a n\u00f3dok k\u00f6z\u00f6tt. Ha vannak olyan slotok, amelyek nem lettek elosztva, akkor az azokban t\u00e1rolt kulcsok nem lesznek el\u00e9rhet\u0151k. \u00c9rdemes minden mester-n\u00f3dot k\u00fcl\u00f6n logikai vagy fizikai g\u00e9pen futtatni. Azt is \u00e9rdemes \u00e9szben tartani, hogy minden n\u00f3d csak egy magon m\u0171k\u00f6dik, \u00e9s ha t\u00f6bb Redis p\u00e9ld\u00e1nyt akarunk futtatni egy logikai g\u00e9pen, akkor gy\u0151z\u0151dj\u00fcnk meg arr\u00f3l, hogy azok k\u00fcl\u00f6nb\u00f6z\u0151 magokon fussanak (mi nem pr\u00f3b\u00e1ltuk \u00edgy, de elm\u00e9letileg minden m\u0171k\u00f6dik). L\u00e9nyeg\u00e9ben a mester-n\u00f3dok biztos\u00edtj\u00e1k a szok\u00e1sos shardel\u00e9st, \u00e9s a t\u00f6bb mester-n\u00f3d lehet\u0151v\u00e9 teszi a fel\u00edr\u00e1si \u00e9s olvas\u00e1si lek\u00e9r\u00e9sek sk\u00e1l\u00e1z\u00e1s\u00e1t.<\/p>\n<p><\/p>\n<p>Miut\u00e1n minden kulcs el van osztva a slotok k\u00f6z\u00f6tt, \u00e9s a slotok a mester-n\u00f3dokon sz\u00e9tsz\u00f3r\u00f3dnak, b\u00e1rmennyi slave-n\u00f3dot hozz\u00e1adhatunk minden mester-n\u00f3dhoz. Minden ilyen \u201emester-slave\u201d p\u00e1rosban a szok\u00e1sos replik\u00e1ci\u00f3 fog m\u0171k\u00f6dni. A slave-ek sz\u00fcks\u00e9gesek az olvas\u00e1si lek\u00e9r\u00e9sek sk\u00e1l\u00e1z\u00e1s\u00e1hoz \u00e9s a mester meghib\u00e1sod\u00e1sa eset\u00e9n a hibamentes v\u00e1lt\u00e1shoz.<br \/>\n<img decoding=\"async\" alt=\"\u00c1tt\u00e9r\u00e9s a Redisr\u00f3l a Redis-clusterre\" src=\"\/wp-content\/uploads\/2020\/08\/90feb7ef9dacb858d5f21edc214df14d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Most besz\u00e9lj\u00fcnk azokr\u00f3l a m\u0171veletekr\u0151l, amelyeket jobb lenne tudni v\u00e9gezni.<\/p>\n<p><\/p>\n<p>A rendszerhez a Redis-CLI-n kereszt\u00fcl fogunk el\u00e9rni. Mivel a Redis-nak nincs egyetlen bel\u00e9p\u00e9si pontja, a k\u00f6vetkez\u0151 m\u0171veleteket b\u00e1rmelyik n\u00f3don el lehet v\u00e9gezni. Minden egyes pontn\u00e1l k\u00fcl\u00f6n figyelembe veszem a m\u0171velet terhel\u00e9s alatti v\u00e9grehajt\u00e1s\u00e1nak lehet\u0151s\u00e9g\u00e9t.<\/p>\n<p><\/p>\n<ul>\n<li>Az els\u0151 \u00e9s legfontosabb dolog, amire sz\u00fcks\u00e9g\u00fcnk van: a cluster nodes m\u0171velet. Ez visszaadja a klaszter \u00e1llapot\u00e1t, megmutatja a n\u00f3dok list\u00e1j\u00e1t, a szerep\u00fcket, a slotok eloszl\u00e1s\u00e1t \u00e9s \u00edgy tov\u00e1bb. Tov\u00e1bbi inform\u00e1ci\u00f3k a cluster info \u00e9s a cluster slots seg\u00edts\u00e9g\u00e9vel \u00e9rhet\u0151k el.<\/li>\n<li>J\u00f3 lenne tudni, hogyan kell csom\u00f3pontokat hozz\u00e1adni \u00e9s elt\u00e1vol\u00edtani. Ehhez a cluster meet \u00e9s cluster forget m\u0171veletek \u00e1llnak rendelkez\u00e9sre. Fontos megjegyezni, hogy a cluster forget-t minden egyes csom\u00f3pont eset\u00e9ben alkalmazni kell, mind a mesterek, mind a replik\u00e1k eset\u00e9ben. A cluster meet viszont csup\u00e1n egyetlen csom\u00f3ponton is el\u00e9gs\u00e9ges. Ez a k\u00fcl\u00f6nbs\u00e9g zavar\u00f3 lehet, ez\u00e9rt jobb t\u00e1j\u00e9koz\u00f3dni r\u00f3la, miel\u0151tt \u00fczembe helyezn\u00e9 a klasztert. Egy csom\u00f3pont biztons\u00e1gosan hozz\u00e1adhat\u00f3 akt\u00edv m\u0171k\u00f6d\u00e9s k\u00f6zben, \u00e9s nem befoly\u00e1solja a klaszter m\u0171k\u00f6d\u00e9s\u00e9t (ami logikus). Ha azonban el szeretn\u00e9 t\u00e1vol\u00edtani a csom\u00f3pontot a klaszterb\u0151l, gy\u0151z\u0151dj\u00f6n meg arr\u00f3l, hogy nem maradtak lemezek rajta (k\u00fcl\u00f6nben kock\u00e1zatot v\u00e1llal arra, hogy elvesz\u00edti az \u00f6sszes kulcsot ezen a csom\u00f3ponton). Ezenk\u00edv\u00fcl ne t\u00e1vol\u00edtsa el azt a mestert, amelynek vannak replik\u00e1i, mert k\u00fcl\u00f6n szavaz\u00e1s indul \u00faj mester kiv\u00e1laszt\u00e1s\u00e1ra. Ha a csom\u00f3pontokon m\u00e1r nincsenek lemezek, akkor ez kicsi probl\u00e9ma, de mi\u00e9rt lenne sz\u00fcks\u00e9g\u00fcnk felesleges v\u00e1laszt\u00e1sokra, ha el\u0151sz\u00f6r elt\u00e1vol\u00edthatjuk a replik\u00e1kat.<\/li>\n<li>Ha sz\u00fcks\u00e9g van a mester \u00e9s a replika k\u00e9nyszer\u00edtett felcser\u00e9l\u00e9s\u00e9re, akkor a cluster failover parancs megfelel\u0151. Akt\u00edv m\u0171k\u00f6d\u00e9s k\u00f6zben ezt a parancsot haszn\u00e1lva figyelembe kell venni, hogy a m\u0171velet v\u00e9grehajt\u00e1sa sor\u00e1n a mester el\u00e9rhetetlen lesz. \u00c1ltal\u00e1ban a v\u00e1lt\u00e1s kevesebb mint egy m\u00e1sodperc alatt megt\u00f6rt\u00e9nik, de nem atomikus. Sz\u00e1m\u00edthat arra, hogy a mesterhez \u00e9rkez\u0151 n\u00e9h\u00e1ny lek\u00e9rdez\u00e9s hiba\u00fczenettel z\u00e1rul ebben az id\u0151szakban.<\/li>\n<li>A klaszterb\u0151l val\u00f3 node elt\u00e1vol\u00edt\u00e1sa el\u0151tt nem maradhatnak rajta slotok. Ezeket legjobban a cluster reshard paranccsal \u00e9rdemes \u00e1thelyezni. A slotok egyik mesterr\u0151l a m\u00e1sikra lesznek \u00e1tvive. Az eg\u00e9sz m\u0171velet t\u00f6bb percet is ig\u00e9nybe vehet, att\u00f3l f\u00fcgg\u0151en, hogy mennyi adatot kell \u00e1tkonvert\u00e1lni, azonban a folyamat biztons\u00e1gos, \u00e9s a klaszter m\u0171k\u00f6d\u00e9s\u00e9re nincs hat\u00e1ssal. \u00cdgy az \u00f6sszes adatot k\u00f6zvetlen\u00fcl terhel\u00e9s alatt lehet \u00e1thelyezni egy nodr\u00f3l a m\u00e1sikra, an\u00e9lk\u00fcl, hogy agg\u00f3dni kellene a rendelkez\u00e9sre \u00e1ll\u00e1suk miatt. Viszont vannak finoms\u00e1gok is. El\u0151sz\u00f6r is, az adatok \u00e1thelyez\u00e9se bizonyos terhel\u00e9st r\u00f3 a fogad\u00f3 \u00e9s az elk\u00fcld\u0151 nodra. Ha a fogad\u00f3 node m\u00e1r er\u0151sen terhelt a CPU-j\u00e1val, akkor nem \u00e9rdemes m\u00e9g \u00faj adatok \u00e1tv\u00e9tel\u00e9vel is terhelni. M\u00e1sodszor, amint a k\u00fcld\u0151 masteren m\u00e1r nem marad slot, az \u00f6sszes slave azonnal \u00e1tker\u00fcl arra a masterre, ahov\u00e1 a slotokat \u00e1tvitt\u00e9k. A probl\u00e9ma az, hogy ezek a slave-ek egyszerre akarnak majd szinkroniz\u00e1lni az adatokkal. Szerencs\u00e9je lesz, ha ez r\u00e9szleges, \u00e9s nem teljes szinkroniz\u00e1l\u00e1s lesz. Ezt vegye figyelembe, \u00e9s kombin\u00e1lja a slotok \u00e1thelyez\u00e9s\u00e9t \u00e9s a slave-ek lekapcsol\u00e1s\u00e1t\/\u00e1thelyez\u00e9s\u00e9t. Vagy rem\u00e9lje, hogy elegend\u0151 tartal\u00e9k \u00e1ll rendelkez\u00e9sre.<\/li>\n<li>Mi a teend\u0151, ha \u00e1thelyez\u00e9s k\u00f6zben \u00e9szreveszi, hogy valahov\u00e1 elvesztette a slotokat? Rem\u00e9lem, ez a probl\u00e9ma nem \u00e9rinti, de ha m\u00e9gis, van egy cluster fix m\u0171velet. Ez v\u00e9letlenszer\u0171en sz\u00e9tsz\u00f3rja a slotokat a nodok k\u00f6z\u00f6tt. Azt javaslom, hogy tesztelje a m\u0171k\u00f6d\u00e9s\u00e9t azel\u0151tt, hogy elt\u00e1vol\u00edtan\u00e1 a klaszterb\u0151l azt a nodot, ahol a slotok el vannak osztva. Mivel az adatok a nem elosztott slotokon \u00edgy is el\u00e9rhetetlenek, m\u00e1r k\u00e9s\u0151 agg\u00f3dni a hozz\u00e1f\u00e9rhet\u0151s\u00e9gi probl\u00e9m\u00e1k miatt. Viszont az elosztott slotokra a m\u0171velet nem fog hat\u00e1ssal lenni.<\/li>\n<li>Egy m\u00e1sik hasznos m\u0171velet a monitor. Ez lehet\u0151v\u00e9 teszi, hogy val\u00f3s id\u0151ben l\u00e1ssa a node-ot el\u00e9r\u0151 \u00f6sszes k\u00e9r\u00e9s list\u00e1j\u00e1t. S\u0151t, ezen kereszt\u00fcl grep-elhet, \u00e9s megtudhatja, van-e sz\u00fcks\u00e9ges forgalom.<\/li>\n<\/ul>\n<p><\/p>\n<p>\u00c9rdemes sz\u00f3lni a mester \u00e1tkapcsol\u00e1si elj\u00e1r\u00e1sr\u00f3l is. R\u00f6viden, van ilyen, \u00e9s v\u00e9lem\u00e9nyem szerint j\u00f3l m\u0171k\u00f6dik. azonban ne gondold, hogy ha kih\u00fazod a g\u00e9pb\u0151l a t\u00e1pk\u00e1belt, a Redis azonnal \u00e1tkapcsol, \u00e9s az \u00fcgyfelek nem \u00e9rz\u00e9kelik a vesztes\u00e9get. Tapasztalataim szerint az \u00e1tkapcsol\u00e1s n\u00e9h\u00e1ny m\u00e1sodpercet vesz ig\u00e9nybe. Ezalatt az id\u0151 alatt egyes adatok nem lesznek el\u00e9rhet\u0151k: a rendszer \u00e9szleli a mester el\u00e9rhetetlens\u00e9g\u00e9t, a csom\u00f3pontok szavaznak egy \u00fajra, a slave-ek \u00e1tkapcsolnak, az adatok szinkroniz\u00e1l\u00f3dnak. A legjobb m\u00f3dja annak, hogy saj\u00e1t magad gy\u0151z\u0151dj meg arr\u00f3l, hogy a rendszer m\u0171k\u00f6dik, az, hogy helyi gyakorlatokat v\u00e9gezzen. Ind\u00edtsd el a klasztert a laptopodon, adj minim\u00e1lis terhel\u00e9st, szimul\u00e1ld a le\u00e1ll\u00e1st (p\u00e9ld\u00e1ul portok blokkol\u00e1s\u00e1val), \u00e9rt\u00e9keld az \u00e1tkapcsol\u00e1s sebess\u00e9g\u00e9t. V\u00e9lem\u00e9nyem szerint csak n\u00e9h\u00e1ny napos kreat\u00edv j\u00e1t\u00e9k ut\u00e1n lehet biztosan tudni, hogy a technol\u00f3gia m\u0171k\u00f6dik. Vagy b\u00edzhatsz abban, hogy a szoftver, amelyet az internet fele haszn\u00e1l, biztosan m\u0171k\u00f6dik.<\/p>\n<p><\/p>\n<h1 id=\"konfiguraciya\">Konfigur\u00e1ci\u00f3<\/h1>\n<p><\/p>\n<p>Gyakran a konfigur\u00e1ci\u00f3 az els\u0151, amire sz\u00fcks\u00e9g van az eszk\u00f6zzel val\u00f3 munk\u00e1hoz. \u00c9s amikor minden m\u0171k\u00f6dik, nem szeretn\u00e9l hozz\u00e1 ny\u00falni a konfigur\u00e1ci\u00f3hoz. Bizonyos er\u0151fesz\u00edt\u00e9seket kell tenni ahhoz, hogy r\u00e1vegyed magad, hogy visszat\u00e9rj a be\u00e1ll\u00edt\u00e1sokhoz \u00e9s alaposan \u00e1tn\u00e9zd \u0151ket. Eml\u00e9keim szerint legal\u00e1bb k\u00e9t s\u00falyos hiba t\u00f6rt\u00e9nt a konfigur\u00e1ci\u00f3val val\u00f3 figyelmetlens\u00e9g miatt. K\u00e9rlek, k\u00fcl\u00f6n\u00f6sen figyelj a k\u00f6vetkez\u0151 pontokra:<\/p>\n<p><\/p>\n<ul>\n<li>timeout 0<br \/>\n<em>Az az id\u0151, amely ut\u00e1n a t\u00e9tlen kapcsolatok bez\u00e1r\u00f3dnak (m\u00e1sodpercben). 0 \u2014 nem z\u00e1r\u00f3dnak be<\/em><br \/>\nNem minden k\u00f6nyvt\u00e1runk tudta helyesen bez\u00e1rni a kapcsolatokat. Ennek a be\u00e1ll\u00edt\u00e1snak a kikapcsol\u00e1s\u00e1val kock\u00e1ra tessz\u00fck, hogy el\u00e9rj\u00fck a klienslimitet. M\u00e1sr\u00e9szr\u0151l, ha ilyen probl\u00e9m\u00e1nk van, akkor az elveszett kapcsolatok automatikus megszak\u00edt\u00e1sa elrejti azt, \u00e9s tal\u00e1n \u00e9szre sem vessz\u00fck. Ezen k\u00edv\u00fcl \u00e9rdemes elker\u00fclni ezt a be\u00e1ll\u00edt\u00e1st persistent kapcsolatok haszn\u00e1latakor.<\/li>\n<li>Save x y &amp; appendonly yes<br \/>\n<em>Az RDB pillanatk\u00e9p ment\u00e9se.<\/em><br \/>\nAz RDB\/AOF probl\u00e9m\u00e1kat r\u00e9szletesen megvitatjuk k\u00e9s\u0151bb.<\/li>\n<li>stop-writes-on-bgsave-error no &amp; slave-serve-stale-data yes<br \/>\n<em>Ha be van kapcsolva, a mester abbahagyja a m\u00f3dos\u00edt\u00f3 k\u00e9r\u00e9sek fogad\u00e1s\u00e1t, ha az RDB pillanatk\u00e9p hib\u00e1s. Ha a mesterrel val\u00f3 kapcsolat megszakad, a slave tov\u00e1bbra is v\u00e1laszolhat a k\u00e9r\u00e9sekre (igen). Vagy le\u00e1ll\u00edthatja a v\u00e1laszad\u00e1st (nem)<\/em><br \/>\nNem vagyunk el\u00e9gedettek azzal a helyzettel, amikor a Redis t\u00f6k form\u00e1j\u00fav\u00e1 v\u00e1lik.<\/li>\n<li>repl-ping-slave-period 5<br \/>\n<em>Ezen id\u0151szak ut\u00e1n kezd\u00fcnk agg\u00f3dni amiatt, hogy a mester le\u00e1llt, \u00e9s ideje lenne elv\u00e9gezni a failover elj\u00e1r\u00e1st.<\/em><br \/>\nK\u00e9zzel kell megtal\u00e1lni az egyens\u00falyt a hamis riaszt\u00e1sok \u00e9s a failover elind\u00edt\u00e1sa k\u00f6z\u00f6tt. Tapasztalataink szerint ez 5 m\u00e1sodperc.<\/li>\n<li>repl-backlog-size 1024mb &amp; epl-backlog-ttl 0<br \/>\n<em>Pont annyi adatot tudunk t\u00e1rolni a le\u00e1llt replik\u00e1k puffereiben. Ha a puffer elfogy, teljes szinkroniz\u00e1ci\u00f3ra lesz sz\u00fcks\u00e9g.<\/em><br \/>\nA gyakorlat azt mutatja, hogy \u00e9rdemes nagyobb \u00e9rt\u00e9ket megadni. Rengeteg ok van, ami miatt a replika k\u00e9slekedhet. Ha k\u00e9slekedik, val\u00f3sz\u00edn\u0171leg a mestere m\u00e1r nehezen birk\u00f3zik meg, \u00e9s a teljes szinkroniz\u00e1ci\u00f3 az utols\u00f3 csepp lesz.<\/li>\n<li>maxclients 10000<br \/>\n<em>A maxim\u00e1lis egyidej\u0171 kliensek sz\u00e1ma.<\/em><br \/>\nTapasztalataink szerint \u00e9rdemes nagyobb \u00e9rt\u00e9ket be\u00e1ll\u00edtani. A Redis 10 ezer kapcsolatot is remek\u00fcl kezel. Csak gy\u0151z\u0151dj\u00f6n meg arr\u00f3l, hogy a rendszerben elegend\u0151 socket tal\u00e1lhat\u00f3. <\/li>\n<li>maxmemory-policy volatile-ttl<br \/>\n<em>A szab\u00e1ly, amely alapj\u00e1n a kulcsok elt\u00e1vol\u00edt\u00e1sra ker\u00fclnek, ha el\u00e9rj\u00fck a rendelkez\u00e9sre \u00e1ll\u00f3 mem\u00f3ria hat\u00e1r\u00e1t.<\/em><br \/>\nItt nem maga a szab\u00e1ly a fontos, hanem a meg\u00e9rt\u00e9s, hogyan fog ez v\u00e9gbemenni. A Redis dics\u00e9retes abban, hogy k\u00e9pes norm\u00e1lisan m\u0171k\u00f6dni a mem\u00f3riahat\u00e1r el\u00e9r\u00e9sekor. <\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"problemy-rdb-i-aof\">RDB \u00e9s AOF probl\u00e9m\u00e1k<\/h1>\n<p><\/p>\n<p>B\u00e1r maga a Redis minden inform\u00e1ci\u00f3t a mem\u00f3ri\u00e1ban t\u00e1rol, l\u00e9tezik egy adatok lemezre ment\u00e9s\u00e9re szolg\u00e1l\u00f3 mechanizmus. Konkr\u00e9tan h\u00e1rom mechanizmus:<\/p>\n<p><\/p>\n<ul>\n<li>RDB-snapshot - a teljes adathalom pillanatk\u00e9pe. A SAVE X Y konfigur\u00e1l\u00e1s\u00e1val \u00e1ll\u00edthat\u00f3 be, \u00e9s \u00fagy olvashat\u00f3, mint \u201eMinden X m\u00e1sodpercben k\u00e9sz\u00edtsen teljes pillanatk\u00e9pet az adatokr\u00f3l, ha legal\u00e1bb Y kulcs v\u00e1ltozott meg\u201d.<\/li>\n<li>Append-only file - az elv\u00e9gzett m\u0171veletek list\u00e1ja a v\u00e9grehajt\u00e1s sorrendj\u00e9ben. \u00dajonnan \u00e9rkezett m\u0171veleteket ad hozz\u00e1 a f\u00e1jlhoz X m\u00e1sodpercenk\u00e9nt vagy Y m\u0171veletenk\u00e9nt.<\/li>\n<li>RDB \u00e9s AOF - a k\u00e9t el\u0151z\u0151 kombin\u00e1ci\u00f3ja.<\/li>\n<\/ul>\n<p><\/p>\n<p>Minden m\u00f3dszernek megvannak a maga el\u0151nyei \u00e9s h\u00e1tr\u00e1nyai, nem fogom mindet felsorolni, csak a sz\u00e1momra nem nyilv\u00e1nval\u00f3 szempontokra h\u00edvom fel a figyelmet.<\/p>\n<p><\/p>\n<p>El\u0151sz\u00f6r is, az RDB-pillanatk\u00e9p ment\u00e9s\u00e9hez FORK h\u00edv\u00e1sa sz\u00fcks\u00e9ges. Ha sok adat van, ez ak\u00e1r n\u00e9h\u00e1ny millisecondt\u00f3l egy m\u00e1sodpercig is felf\u00fcggesztheti az eg\u00e9sz Redis-t. Ezenk\u00edv\u00fcl a rendszernek mem\u00f3ri\u00e1t kell allok\u00e1lnia egy ilyen pillanatk\u00e9phez, ami dupla mem\u00f3riatartal\u00e9k fenntart\u00e1s\u00e1t ig\u00e9nyli a logikai g\u00e9pen: ha a Redis sz\u00e1m\u00e1ra 8 GB van fenntartva, akkor a virtu\u00e1lis g\u00e9pen ennek 16 GB-nak kell lennie.<\/p>\n<p><\/p>\n<p>M\u00e1sodszor, probl\u00e9m\u00e1k vannak a r\u00e9szleges szinkroniz\u00e1ci\u00f3val. A AOF \u00fczemm\u00f3dban, amikor a sl\u00e1verk\u00e9nt val\u00f3 \u00fajracsatlakoz\u00e1s t\u00f6rt\u00e9nik, ahelyett, hogy r\u00e9szleges szinkroniz\u00e1ci\u00f3 val\u00f3sulna meg, teljes szinkroniz\u00e1ci\u00f3 t\u00f6rt\u00e9nhet. Nem tudtam kider\u00edteni, mi\u00e9rt van ez \u00edgy. De \u00e9rdemes erre figyelni.<\/p>\n<p><\/p>\n<p>Ez a k\u00e9t pont m\u00e1r elgondolkodtat arr\u00f3l, hogy t\u00e9nyleg sz\u00fcks\u00e9g\u00fcnk van-e ezekre az adatokra a lemezen, ha \u00fagyis minden a sl\u00e1vokon van m\u00e1solva. Az adatok elveszt\u00e9se csak akkor lehets\u00e9ges, ha az \u00f6sszes sl\u00e1v meghib\u00e1sodik, ami m\u00e1r egy \u201et\u0171zeset az adatk\u00f6zpontban\u201d szint\u0171 probl\u00e9ma. Kompromisszumk\u00e9nt aj\u00e1nlhatjuk, hogy az adatokat csak a sl\u00e1vokon t\u00e1roljuk, de ebben az esetben biztos\u00edtani kell, hogy ezek a sl\u00e1vok soha ne v\u00e1ljanak f\u0151 gittt\u00e9 v\u00e9szhelyzet-helyre\u00e1ll\u00edt\u00e1skor (ehhez a sl\u00e1vok priorit\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1sa sz\u00fcks\u00e9ges a konfigur\u00e1ci\u00f3jukban). Minden egyes esetben m\u00e9rlegelj\u00fck, hogy sz\u00fcks\u00e9g van-e az adatok lemezre ment\u00e9s\u00e9re, \u00e9s leggyakrabban azt v\u00e1laszoljuk, hogy \u201enem\u201d.<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Z\u00e1r\u00e1s<\/h1>\n<p><\/p>\n<p>\u00d6sszess\u00e9g\u00e9ben rem\u00e9lem, hogy siker\u00fclt \u00e1ltal\u00e1nos k\u00e9pet adnom a redis-cluster m\u0171k\u00f6d\u00e9s\u00e9r\u0151l azoknak, akik m\u00e9g sosem hallottak r\u00f3la, \u00e9s felh\u00edvtam a figyelmet n\u00e9h\u00e1ny nem nyilv\u00e1nval\u00f3 dologra azok sz\u00e1m\u00e1ra, akik m\u00e1r r\u00e9g\u00f3ta haszn\u00e1lj\u00e1k.<br \/>\nK\u00f6sz\u00f6n\u00f6m az id\u0151t, \u00e9s mint \u00e1ltal\u00e1ban, a t\u00e9m\u00e1val kapcsolatos megjegyz\u00e9sek mindig \u00fcdv\u00f6zlend\u0151k.<\/p>\n<p>Forr\u00e1s: <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.3 - 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\/hu\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\/hu\/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\udd47A Redis-r\u00f3l Redis-clusterre val\u00f3 \u00e1t\u00e1ll\u00e1sr\u00f3l | ProHoster","description":"Olyan term\u00e9kbe \u00e9rkezni, amely folyamatosan fejl\u0151dik.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/o-pereezde-s-redis-na-redis-cluster","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/91846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=91846"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/91846\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/91847"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=91846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=91846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=91846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}