Mahitungod sa pagbalhin gikan sa Redis ngadto sa Redis-cluster

Mahitungod sa pagbalhin gikan sa Redis ngadto sa Redis-cluster

Pag-abut sa usa ka produkto nga nag-uswag sa sobra sa usa ka dekada, dili gyud katingad-an nga makit-an ang mga karaan nga teknolohiya niini. Apan komosta kon sa unom ka bulan kinahanglang huptan nimo ang karga nga 10 ka pilo nga mas taas, ug ang gasto sa pagkahulog motaas ug gatosan ka pilo? Sa kini nga kaso, kinahanglan nimo ang usa ka cool nga Highload Engineer. Apan kay walay katabang, ila kong gitugyanan sa pagsulbad sa problema. Sa una nga bahin sa artikulo isulti ko kanimo kung giunsa kami mibalhin gikan sa Redis hangtod sa Redis-cluster, ug sa ikaduha nga bahin maghatag ako tambag kung giunsa pagsugod ang paggamit sa cluster ug kung unsa ang hatagan pagtagad kung gamiton kini.

Pagpili sa teknolohiya

Kadaot ba? bulag nga Redis (standalone redis) sa usa ka configuration sa 1 master ug N nga mga ulipon? Nganong gitawag ko kini nga obsolete nga teknolohiya?

Dili, ang Redis dili kaayo daotan ... Bisan pa, adunay pipila ka mga kakulangan nga dili mahimong ibalewala.

  • Una, wala gisuportahan sa Redis ang mga mekanismo sa pagbawi sa katalagman pagkahuman sa usa ka master failure. Aron masulbad kini nga problema, gigamit namon ang usa ka pagsumpo nga adunay awtomatikong pagbalhin sa mga VIP sa usa ka bag-ong agalon, gibag-o ang papel sa usa sa mga ulipon ug gibalhin ang nahabilin. Kini nga mekanismo nagtrabaho, apan dili kini matawag nga kasaligan nga solusyon. Una, ang sayup nga mga alarma nahitabo, ug ikaduha, kini magamit, ug pagkahuman sa mga aksyon sa manwal nga operasyon gikinahanglan aron ma-charge ang tubod.

  • Ikaduha, ang pagbaton og usa lamang ka agalon misangpot sa problema sa sharding. Kinahanglan namon nga maghimo daghang mga independente nga mga pungpong nga "1 master ug N nga mga ulipon," dayon mano-mano nga ipang-apod-apod ang mga database sa kini nga mga makina ug nanghinaut nga ugma ang usa sa mga database dili modako nga kinahanglan kini ibalhin sa usa ka lahi nga higayon.

Unsa ang mga kapilian?

  • Ang labing mahal ug labing adunahan nga solusyon mao ang Redis-Enterprise. Kini usa ka kahon nga solusyon nga adunay bug-os nga teknikal nga suporta. Bisan pa sa kamatuoran nga kini tan-awon nga sulundon gikan sa usa ka teknikal nga punto sa pagtan-aw, dili kini angay kanamo alang sa mga hinungdan sa ideolohiya.
  • Redis-cluster. Gawas sa kahon adunay suporta alang sa master failover ug sharding. Ang interface halos walay kalainan sa regular nga bersyon. Nindot tan-awon, maghisgot kita bahin sa mga lit-ag sa ulahi.
  • Tarantool, Memcache, Aerospike ug uban pa. Ang tanan nga kini nga mga himan naghimo sa parehas nga butang. Apan ang matag usa adunay kaugalingon nga mga kakulangan. Nakahukom kami nga dili ibutang ang tanan namong mga itlog sa usa ka basket. Gigamit namon ang Memcache ug Tarantool alang sa ubang mga buluhaton, ug, sa pagtan-aw sa unahan, isulti ko nga sa among praktis adunay daghang mga problema sa kanila.

Mga espesipiko sa paggamit

Atong tan-awon kung unsang mga problema ang among nasulbad sa kasaysayan sa Redis ug kung unsang gamit ang among gigamit:

  • Pag-cache sa wala pa ang mga hangyo sa hilit nga serbisyo sama sa 2GIS | Golang

    GET SET MGET MSET "PILI DB"

  • Cache sa wala pa ang MYSQL | PHP

    GET SET MGET MSET SCAN "KEY BY PATTERN" "SELECT DB"

  • Ang panguna nga pagtipig alang sa serbisyo sa pagtrabaho kauban ang mga sesyon ug mga coordinate sa drayber | Golang

    GET SET MGET MSET "SELECT DB" "ADD GEO KEY" "GET GEO KEY" SCAN

Sama sa imong makita, walay mas taas nga matematika. Unsa man diay ang kalisud? Atong tan-awon ang matag pamaagi nga gilain.

Paagi
paghulagway
Mga bahin sa Redis-cluster
desisyon

PAGHANDOM
Isulat/basaha ang yawe

MGET MSET
Pagsulat/pagbasa ug daghang yawe
Ang mga yawe anaa sa lainlaing mga node. Ang andam nga mga librarya makahimo sa daghang mga operasyon sulod lamang sa usa ka node
Ilisan ang MGET og pipeline sa N GET nga mga operasyon

PILI DB
Pilia ang base nga among pagtrabaho
Wala nagsuporta sa daghang mga database
Ibutang ang tanan sa usa ka database. Idugang ang mga prefix sa mga yawe

I-scan
Lakaw pinaagi sa tanan nga mga yawe sa database
Tungod kay kita adunay usa ka database, ang pag-agi sa tanan nga mga yawe sa cluster mahal kaayo
Hupti ang usa ka invariant sulod sa usa ka yawe ug buhata ang usa ka HSCAN niini nga yawe. O pagdumili sa hingpit

GEO
Mga operasyon nga adunay geokey
Ang geokey dili sharded

YAWI PINAAGI SA SUMBANAN
Pagpangita alang sa usa ka yawe pinaagi sa sumbanan
Tungod kay kami adunay usa ka database, kami mangita sa tanan nga mga yawe sa cluster. Mahal kaayo
Isalikway o ipadayon ang invariant, sama sa kaso sa SCAN

Redis batok sa Redis-cluster

Unsa ang mawala kanato ug unsa ang atong makuha kung mobalhin sa usa ka cluster?

  • Mga disbentaha: nawad-an kami sa pagpaandar sa daghang mga database.
    • Kung gusto namon nga magtipig sa lohikal nga wala’y kalabutan nga datos sa usa ka kumpol, kinahanglan namon nga maghimo mga crutches sa porma sa mga prefix.
    • Mawala namo ang tanang "base" nga mga operasyon, sama sa SCAN, DBSIZE, CLEAR DB, ug uban pa.
    • Ang mga multi-operasyon nahimong mas lisud nga ipatuman tungod kay kini nagkinahanglan og access sa daghang mga node.
  • Dugang:
    • Fault tolerance sa porma sa master failover.
    • Sharding sa kilid sa Redis.
    • Pagbalhin sa datos tali sa mga node sa atomically ug walay downtime.
    • Pagdugang ug pag-apod-apod sa kapasidad ug mga load nga walay downtime.

Akong ihinapos nga kung dili nimo kinahanglan nga maghatag usa ka taas nga lebel sa pagtugot sa sayup, nan ang pagbalhin sa usa ka kumpol dili takus niini, tungod kay kini mahimo nga usa ka dili hinungdanon nga buluhaton. Apan kung una ka nga mopili tali sa usa ka lahi nga bersyon ug usa ka cluster nga bersyon, nan kinahanglan ka nga mopili sa usa ka cluster, tungod kay kini dili mas grabe ug, dugang pa, makapahupay kanimo sa pipila ka mga labad sa ulo

Nangandam sa paglihok

Magsugod ta sa mga kinahanglanon sa paglihok:

  • Kini kinahanglan nga seamless. Ang kompleto nga paghunong sa serbisyo sulod sa 5 ka minuto dili angay kanamo.
  • Kinahanglan nga kini luwas ug hinay-hinay kutob sa mahimo. Gusto ko nga adunay kontrol sa sitwasyon. Dili namo gusto nga ilabay ang tanan sa makausa ug iampo ang rollback button.
  • Minimal nga pagkawala sa data kung naglihok. Nasabtan namo nga lisud kaayo ang paglihok sa atomiko, mao nga gitugotan namo ang pipila ka desynchronization tali sa datos sa regular ug clustered Redis.

Pagmentinar sa cluster

Sa wala pa ang paglihok, kinahanglan naton hunahunaon kung mahimo ba naton suportahan ang cluster:

  • Mga tsart. Gigamit namo ang Prometheus ug Grafana sa pag-graph sa CPU load, paggamit sa memorya, gidaghanon sa mga kliyente, gidaghanon sa GET, SET, AUTH nga mga operasyon, ug uban pa.
  • Kahanas. Hunahunaa nga ugma adunay usa ka dako nga pundok ubos sa imong responsibilidad. Kung kini maguba, walay lain gawas kanimo ang makaayo niini. Kung maghinayhinay na siya, ang tanan modagan padulong kanimo. Kung kinahanglan nimo nga idugang ang mga kapanguhaan o ipanghatag pag-usab ang load, mobalik kami kanimo. Aron dili mahimong abohon sa 25, gitambagan nga hatagan kini nga mga kaso ug susihon daan kung giunsa ang paglihok sa teknolohiya sa panahon sa pipila nga mga aksyon. Atong hisgotan kini sa mas detalyado sa seksyon nga "Expertise".
  • Pag-monitor ug mga alerto. Kung naguba ang usa ka cluster, gusto nimo nga ikaw ang una nga makahibalo bahin niini. Dinhi gilimitahan namon ang among kaugalingon sa usa ka pahibalo nga ang tanan nga mga node nagbalik sa parehas nga kasayuran bahin sa kahimtang sa cluster (oo, lahi kini nga mahitabo). Ug ang ubang mga problema mahimong mamatikdan nga mas dali pinaagi sa mga alerto gikan sa mga serbisyo sa kliyente sa Redis.

naglihok

Unsaon nato paglihok:

  • Una sa tanan, kinahanglan ka mag-andam usa ka librarya aron magtrabaho kauban ang cluster. Gikuha namo ang go-redis isip basehan sa bersyon sa Go ug giusab kini og gamay aron mohaum sa among kaugalingon. Gipatuman namo ang Multi-methods pinaagi sa pipelines, ug gitul-id usab gamay ang mga lagda alang sa balik-balik nga mga hangyo. Ang bersyon sa PHP adunay daghang mga problema, apan sa kadugayan nahusay namon ang php-redis. Bag-o lang nila gipaila ang suporta sa cluster ug kini maayo sa among opinyon.
  • Sunod kinahanglan nimo nga i-deploy ang cluster mismo. Gihimo kini sa literal sa duha ka mga sugo base sa configuration file. Atong hisgotan ang setting sa mas detalyado sa ubos.
  • Alang sa hinay-hinay nga paglihok gigamit namon ang dry-mode. Tungod kay kami adunay duha ka bersyon sa librarya nga adunay parehas nga interface (usa alang sa regular nga bersyon, ang lain alang sa cluster), wala’y gasto ang paghimo usa ka wrapper nga magamit sa usa ka lahi nga bersyon ug parehas nga doble ang tanan nga mga hangyo sa cluster, itandi ang mga tubag ug isulat ang mga kalainan sa mga troso (sa among kaso sa NewRelic). Busa, bisan kung ang bersyon sa cluster maguba sa panahon sa paglusad, ang among produksiyon dili maapektuhan.
  • Ang pag-roll out sa cluster sa dry mode, mahimo natong kalmado nga tan-awon ang graph sa mga kalainan sa tubag. Kung ang rate sa sayup hinay apan sigurado nga molihok padulong sa gamay nga kanunay, nan maayo ang tanan. Nganong naa pay mga kalainan? Tungod kay ang pagrekord sa usa ka bulag nga bersyon mahitabo sa usa ka gamay nga sayo kaysa sa cluster, ug tungod sa microlag, ang data mahimong magkalahi. Ang nahabilin mao ang pagtan-aw sa mga talaan sa kalainan, ug kung silang tanan gipatin-aw sa dili atomicity sa rekord, nan makapadayon kita.
  • Karon mahimo nimong ibalhin ang dry-mode sa atbang nga direksyon. Magsulat ug magbasa kami gikan sa cluster, ug doblehon kini sa lahi nga bersyon. Para unsa? Sa sunod semana gusto nakong obserbahan ang trabaho sa cluster. Kung kalit nga makita nga adunay mga problema sa peak load, o wala namon gikonsiderar ang usa ka butang, kanunay kami adunay usa ka emergency rollback sa daan nga code ug karon nga datos salamat sa dry-mode.
  • Ang nahabilin mao ang pag-disable sa dry-mode ug pagbungkag sa bulag nga bersyon.

Kahanas

Una, sa daklit bahin sa disenyo sa cluster.

Una sa tanan, ang Redis usa ka tindahan nga hinungdanon nga kantidad. Ang arbitraryong mga kuwerdas gigamit isip mga yawe. Ang mga numero, mga kuwerdas, ug tibuok nga mga istruktura mahimong gamiton isip mga bili. Adunay usa ka dako nga daghan sa naulahi, apan alang sa pagsabut sa kinatibuk-ang istruktura kini dili importante alang kanato.
Ang sunod nga lebel sa abstraction human sa mga yawe mao ang mga slots (SLOTS). Ang matag yawe iya sa usa sa 16 ka slots. Mahimong adunay bisan unsang gidaghanon sa mga yawe sulod sa matag slot. Busa, ang tanang yawe gibahin ngadto sa 383 ka disjoint set.
Mahitungod sa pagbalhin gikan sa Redis ngadto sa Redis-cluster

Sunod, kinahanglan adunay N master nodes sa cluster. Ang matag node mahimong mahunahuna nga usa ka bulag nga pananglitan sa Redis nga nahibal-an ang tanan bahin sa ubang mga node sa sulod sa cluster. Ang matag master node adunay daghang mga slot. Ang matag slot iya lang sa usa ka master node. Ang tanan nga mga slots kinahanglan nga iapud-apod tali sa mga node. Kung ang pipila ka mga slots wala gigahin, nan ang mga yawe nga gitipigan niini dili ma-access. Makataronganon ang pagpadagan sa matag master node sa usa ka separado nga lohikal o pisikal nga makina. Angayan usab nga hinumdoman nga ang matag node nagdagan lamang sa usa ka kinauyokan, ug kung gusto nimo nga modagan ang daghang mga higayon sa Redis sa parehas nga lohikal nga makina, siguruha nga kini modagan sa lainlaing mga cores (wala pa namon kini gisulayan, apan sa teorya kinahanglan kini molihok) . Sa tinuud, ang mga master node naghatag kanunay nga sharding, ug daghang mga master node ang nagtugot sa pagsulat ug pagbasa sa mga hangyo nga masukod.

Human maapod-apod ang tanang mga yawe taliwala sa mga slots, ug ang mga slots nagkatag taliwala sa mga master node, ang usa ka arbitraryong gidaghanon sa mga slave node mahimong idugang sa matag master node. Sulod sa matag ingon nga master-slave link, ang normal nga pagkopya molihok. Ang mga ulipon gikinahanglan sa pagsukod sa mga hangyo sa pagbasa ug sa pagkapakyas sa kaso sa master failure.
Mahitungod sa pagbalhin gikan sa Redis ngadto sa Redis-cluster

Karon maghisgot kita bahin sa mga operasyon nga mas maayo nga mahimo.

Atong ma-access ang sistema pinaagi sa Redis-CLI. Tungod kay ang Redis walay usa ka entry point, mahimo nimo ang mosunod nga mga operasyon sa bisan asa sa mga node. Sa matag punto gilain nako nga gipunting ang atensyon sa posibilidad sa pagpahigayon sa operasyon ubos sa pagkarga.

  • Ang una ug labing importante nga butang nga atong gikinahanglan mao ang operasyon sa cluster nodes. Gibalik niini ang estado sa cluster, nagpakita sa usa ka lista sa mga node, ilang mga tahas, pag-apod-apod sa slot, ug uban pa. Dugang impormasyon makuha gamit ang cluster info ug cluster slots.
  • Maayo unta nga makadugang ug makatangtang sa mga node. Alang niini nga katuyoan adunay mga cluster meet ug cluster forget operations. Palihug timan-i nga ang cluster forget kinahanglang i-apply sa TANANG node, masters ug replicas. Ug ang cluster meet kinahanglan ra nga tawagan sa usa ka node. Kini nga kalainan mahimong makapalibog, mao nga labing maayo nga mahibal-an ang bahin niini sa dili ka pa magpuyo sa imong cluster. Ang pagdugang sa usa ka node gihimo nga luwas sa gubat ug dili makaapekto sa operasyon sa cluster sa bisan unsang paagi (nga makatarunganon). Kung imong tangtangon ang usa ka node gikan sa cluster, kinahanglan nimong sigurohon nga wala nay mga slot nga nahabilin niini (kung dili, peligro ka nga mawad-an sa access sa tanan nga mga yawe sa kini nga node). Usab, ayaw kuhaa ang usa ka agalon nga adunay mga ulipon, kung dili usa ka wala kinahanglana nga pagboto alang sa usa ka bag-ong agalon ang himuon. Kung ang mga node wala nay mga slot, nan kini usa ka gamay nga problema, apan ngano nga kinahanglan naton ang dugang nga mga kapilian kung mahimo naton una nga mapapas ang mga ulipon.
  • Kung kinahanglan nimo nga kusog nga ibaylo ang mga posisyon sa agalon ug ulipon, buhaton ang mando sa cluster failover. Kung gitawag kini sa gubat, kinahanglan nimo nga masabtan nga ang agalon dili magamit sa panahon sa operasyon. Kasagaran ang switch mahitabo sa wala’y usa ka segundo, apan dili atomic. Mahimo nimong mapaabut nga ang pipila nga mga hangyo sa agalon mapakyas sa niining panahona.
  • Sa dili pa tangtangon ang usa ka node gikan sa cluster, kinahanglan nga walay mga slots nga nahabilin niini. Mas maayo nga iapod-apod kini gamit ang cluster reshard command. Ang mga slots ibalhin gikan sa usa ka agalon ngadto sa lain. Ang tibuok nga operasyon mahimong molungtad og pipila ka minuto, kini nagdepende sa gidaghanon sa datos nga gibalhin, apan ang proseso sa pagbalhin luwas ug dili makaapekto sa operasyon sa cluster sa bisan unsang paagi. Sa ingon, ang tanan nga mga datos mahimong mabalhin gikan sa usa ka node ngadto sa lain nga direkta sa ilawom sa pagkarga, ug nga dili mabalaka bahin sa pagkaanaa niini. Bisan pa, adunay usab mga subtleties. Una, ang pagbalhin sa data nalangkit sa usa ka piho nga load sa nakadawat ug nagpadala nga mga node. Kung ang recipient node nabug-atan na sa processor, nan dili nimo kini i-load sa pagdawat sa bag-ong datos. Ikaduha, sa diha nga wala nay usa ka slot nga nahabilin sa nagpadala nga agalon, ang tanan nga mga ulipon niini moadto dayon sa agalon diin kini nga mga slots gibalhin. Ug ang problema mao nga kining tanan nga mga ulipon gusto nga mag-synchronize sa datos sa usa ka higayon. Ug swerte ka kung kini partial kaysa kompleto nga pag-synchronize. Hunahunaa kini ug isagol ang mga operasyon sa pagbalhin sa mga slots ug pag-disable/pagbalhin sa mga ulipon. O naglaum nga ikaw adunay igong margin sa kaluwasan.
  • Unsa ang imong buhaton kung, sa panahon sa pagbalhin, imong makita nga nawala nimo ang imong mga slot sa usa ka lugar? Nanghinaut ko nga kini nga problema dili makaapekto kanimo, apan kung kini mahitabo, adunay usa ka cluster fix operation. Sa labing gamay, iyang isabwag ang mga slot sa mga node sa random nga pagkasunud. Girekomendar nako nga susihon ang operasyon niini pinaagi sa pagtangtang una sa node nga adunay gipang-apod-apod nga mga slot gikan sa cluster. Tungod kay ang mga datos sa wala gigahin nga mga slots wala na magamit, ulahi na kaayo aron mabalaka bahin sa mga problema sa pagkaanaa niini nga mga slot. Sa baylo, ang operasyon dili makaapekto sa gipang-apod-apod nga mga slot.
  • Ang laing mapuslanon nga operasyon mao ang monitor. Gitugotan ka niini nga makita sa tinuud nga oras ang tibuuk nga lista sa mga hangyo nga moadto sa node. Dugang pa, mahimo nimong makuha kini ug mahibal-an kung adunay kinahanglan nga trapiko.

Angayan usab nga hisgutan ang pamaagi sa master failover. Sa laktud, kini anaa, ug, sa akong opinyon, kini maayo kaayo. Bisan pa, ayaw paghunahuna nga kung imong i-unplug ang power cord sa usa ka makina nga adunay master node, ang Redis mobalhin dayon ug ang mga kliyente dili makamatikod sa pagkawala. Sa akong praktis, ang pagbalhin mahitabo sa pipila ka segundo. Niini nga panahon, ang pipila sa mga datos dili magamit: ang pagkadili magamit sa agalon nakit-an, ang mga node nagboto alang sa usa ka bag-o, ang mga ulipon gibalhin, ang datos gi-synchronize. Ang labing kaayo nga paagi aron masiguro sa imong kaugalingon nga ang laraw nagtrabaho mao ang pagpahigayon sa mga lokal nga ehersisyo. Ipataas ang cluster sa imong laptop, hatagi kini og minimum nga load, i-simulate ang pagkahagsa (pananglitan, pinaagi sa pagbabag sa mga pantalan), ug pagtimbang-timbang sa gikusgon sa switching. Sa akong opinyon, human lamang sa pagdula niining paagiha sulod sa usa o duha ka adlaw nga makasalig ka sa operasyon sa teknolohiya. Aw, o naglaum nga ang software nga gigamit sa katunga sa Internet tingali molihok.

Pagsalig

Kasagaran, ang configuration mao ang unang butang nga imong gikinahanglan sa pagsugod sa pagtrabaho uban sa himan.Ug sa diha nga ang tanan nga mga buhat, ikaw dili gani gusto sa paghikap sa config. Nagkinahanglan kini og pipila ka paningkamot aron mapugos ang imong kaugalingon sa pagbalik sa mga setting ug pag-agi niini pag-ayo. Sa akong panumduman, kami adunay labing menos duha ka seryoso nga mga kapakyasan tungod sa kawalay pagtagad sa configuration. Hatagi og espesyal nga pagtagad ang mosunod nga mga punto:

  • oras sa 0
    Oras nga human niana ang dili aktibo nga mga koneksyon sirado (sa mga segundo). 0 - ayaw pagsira
    Dili tanan nga librarya namo nakahimo sa pagsira sa mga koneksyon sa husto. Pinaagi sa pag-disable sa kini nga setting, peligro namon nga maabot ang limitasyon sa gidaghanon sa mga kliyente. Sa laing bahin, kung adunay ingon nga problema, unya ang awtomatik nga pagtapos sa nawala nga mga koneksyon mag-mask niini, ug tingali dili kita makamatikod. Dugang pa, kinahanglan nga dili nimo palihokon kini nga setting kung mogamit mga padayon nga koneksyon.
  • I-save ang xy ug dugang oo
    Pag-save sa usa ka snapshot sa RDB.
    Atong hisgotan ang mga isyu sa RDB/AOF sa detalye sa ubos.
  • stop-writes-on-bgsave-error no & slave-serve-stale-data oo
    Kung mahimo, kung ang snapshot sa RDB maguba, ang agalon mohunong sa pagdawat sa mga hangyo sa pagbag-o. Kung nawala ang koneksyon sa agalon, ang ulipon mahimong magpadayon sa pagtubag sa mga hangyo (oo). O mohunong sa pagtubag (dili)
    Wala kami nalipay sa kahimtang diin si Redis nahimong kalabasa.
  • repl-ping-slave-period 5
    Pagkahuman sa kini nga yugto sa panahon, magsugod kami mabalaka nga nabuak ang agalon ug oras na aron himuon ang pamaagi sa failover.
    Kinahanglan nimo nga mano-mano ang pagpangita sa balanse tali sa mga sayup nga positibo ug pag-trigger sa usa ka failover. Sa among praktis kini 5 segundos.
  • repl-backlog-size 1024mb & epl-backlog-ttl 0
    Mahimo natong tipigan kini nga daghang datos sa usa ka buffer alang sa usa ka napakyas nga kopya. Kung mahurot ang buffer, kinahanglan nimo nga hingpit nga mag-synchronize.
    Ang praktis nagsugyot nga mas maayo nga magbutang og mas taas nga bili. Adunay daghang mga hinungdan ngano nga ang usa ka kopya mahimo’g magsugod sa paglangan. Kung kini malangan, nan lagmit nga ang imong agalon nanlimbasug na sa pagsagubang, ug ang bug-os nga pag-synchronize mao ang katapusan nga uhot.
  • maxclients 10000
    Maximum nga gidaghanon sa usa ka higayon nga mga kliyente.
    Sa among kasinatian, mas maayo nga magbutang og mas taas nga kantidad. Ang Redis nagdumala sa 10k nga koneksyon nga maayo ra. Siguruha lang nga adunay igo nga mga socket sa sistema.
  • maxmemory-policy volatile-ttl
    Ang lagda diin ang mga yawe mapapas kung ang magamit nga limitasyon sa memorya maabot.
    Ang hinungdanon dinhi dili ang lagda mismo, apan ang pagsabut kung giunsa kini mahitabo. Ang Redis mahimong daygon tungod sa abilidad niini sa pagtrabaho nga normal kung ang limitasyon sa panumduman naabot.

Mga problema sa RDB ug AOF

Bisan kung ang Redis mismo nagtipig sa tanan nga kasayuran sa RAM, adunay usa usab nga mekanismo sa pagtipig sa datos sa disk. Sa mas tukma, tulo ka mekanismo:

  • RDB-snapshot - usa ka kompleto nga snapshot sa tanan nga datos. I-set gamit ang SAVE XY configuration ug mabasa ang “Save a full snapshot of all data every X seconds if at least Y keys has changed.”
  • Append-only file - usa ka lista sa mga operasyon sa han-ay nga kini gihimo. Nagdugang bag-ong mga umaabot nga operasyon sa file matag X segundos o matag Y nga operasyon.
  • Ang RDB ug AOF maoy kombinasyon sa miaging duha.

Ang tanan nga mga pamaagi adunay ilang mga bentaha ug disbentaha, dili nako ilista ang tanan, akong ipunting ang atensyon sa mga punto nga, sa akong opinyon, dili klaro.

Una, ang pagtipig sa usa ka snapshot sa RDB nanginahanglan pagtawag sa FORK. Kung adunay daghang mga datos, mahimo’g ibitay niini ang tanan nga Redis sulod sa pipila ka mga millisecond hangtod sa usa ka segundo. Dugang pa, ang sistema kinahanglan nga mogahin og panumduman alang sa ingon nga snapshot, nga mosangpot sa panginahanglan sa paghupot sa usa ka doble nga suplay sa RAM sa lohikal nga makina: kung ang 8 GB gigahin alang sa Redis, nan ang 16 GB kinahanglan nga magamit sa virtual machine nga adunay kini.

Ikaduha, adunay mga problema sa partial synchronization. Sa AOF mode, kung ang ulipon makonektar pag-usab, imbes nga partial nga pag-synchronize, ang hingpit nga pag-synchronize mahimo. Ngano nga nahitabo kini, wala ako makasabut. Apan angay kining hinumdoman.

Kining duha ka punto nakapahunahuna na kanato kon gikinahanglan ba gayod nato kini nga datos sa disk kon ang tanan gikopya na sa mga ulipon. Mawala ra ang datos kung mapakyas ang tanan nga mga ulipon, ug kini usa ka problema sa lebel sa "kalayo sa DC". Ingon usa ka pagkompromiso, mahimo nimong isugyot nga i-save ang data lamang sa mga ulipon, apan sa kini nga kaso kinahanglan nimo nga sigurohon nga kini nga mga ulipon dili gyud mahimo nga usa ka agalon sa panahon sa pagkaayo sa katalagman (tungod niini adunay usa ka setting sa prayoridad sa mga ulipon sa ilang config). Alang sa atong kaugalingon, sa matag piho nga kaso atong gihunahuna kung kinahanglan ba nga i-save ang data sa disk, ug kasagaran ang tubag "dili".

konklusyon

Sa konklusyon, nanghinaut ko nga nakahatag ako usa ka kinatibuk-ang ideya kung giunsa ang paglihok sa redis-cluster alang sa mga wala pa makadungog bahin niini, ug gipunting usab ang atensyon sa pipila nga dili klaro nga mga punto alang sa mga naggamit niini. sa dugay nga panahon.
Salamat sa imong oras ug, sama sa kanunay, ang mga komento sa hilisgutan giabiabi.

Source: www.habr.com

Idugang sa usa ka comment