Redis Cluster er en populær løsning for skalering av Redis -distribusjoner for å oppnå høyere tilgjengelighet, feiltoleranse og data som skarmer over flere noder. Riktig konfigurasjon av Redis -klyngen involverer flere beste praksis som sikrer optimal ytelse, pålitelighet og håndterbarhet.
Cluster Architecture and Node Configuration
Redis Cluster krever minst tre masternoder for å fungere pålitelig. Ideelt sett bør en produksjonsklynge inneholde minimum seks noder, hvor hver master har en eller flere kopier. Dette oppsettet sikrer høy tilgjengelighet, slik at automatisk failover i tilfelle noen masternode mislykkes. Hver node kjører i klyngemodus og må ha spesifikke konfigurasjoner aktivert, inkludert:
- `Cluster-aktivert Ja` for å aktivere klyngemodus på hver Redis-forekomst.
-`Cluster-Config-File` som spesifiserer filen der klyngeknute-tilstanden er lagret (f.eks.` noder.conf`).
-`Cluster-node-timeout` Definere maksimal tid en node kan være utilgjengelig før den blir vurdert som mislykket (ofte satt til 5000 til 15000 millisekunder).
`Cluster-Config-File` administreres automatisk av Redis og må ikke redigeres manuelt, da den opprettholder kritisk tilstandsinformasjon som node-ID-er, kartlegginger og spilleautomater. Hver node tildeler seg en unik node -ID ved oppstart, som vedvarer i løpet av sin levetid selv om IP eller port endres.
Maskinvare- og nettverksoppsett
Noder bør distribueres på separate fysiske eller virtuelle maskiner for å unngå enkeltpunkt for feil. Nettverkstilkobling mellom noder må tillate både klientkommunikasjonsporter (typisk TCP 6379 eller serviceporten som er i bruk) og klyngebussporten (en andre port typisk TCP Service Port + 10000, f.eks. 16379) for Cluster internode kommunikasjon.
Konfigurer nettverksgrensesnitt og brannmurer nøye for å tillate denne trafikken mellom noder og eventuelt mellom klienter og klyngeknuter. Å sette `bind` -direktivet til spesifikke private IP -er i stedet for å binde til alle grensesnitt forbedrer sikkerheten.
Persistens og databehandling
Aktiver utholdenhetsmekanismer som RDB-øyeblikksbilder eller AOF (legg bare fil), avhengig av nødvendige dataholdbarhet og ytelsesavveininger. AOF gir bedre holdbarhet ved å logge hver skriveoperasjon, men kan legge til latens og IO -overhead. Å kombinere RDB -øyeblikksbilder med AOF kan bidra til å balansere ytelse og holdbarhet.
Direktivet `Appendonly Yes 'muliggjør AOF -modus. Disse innstillingene skal være nøye innstilt i henhold til arbeidsmengder og akseptable vinduer for tap av data.
Minnehåndtering og utkastelsespolitikk
Konfigurer innstillingen `MaxMemory` for å sikre at Redis passer inn i tilgjengelig minne på noden. Velg en passende utkastelsespolitikk ved å bruke `MaxMemory-Policy` som` AllKeys-Lru` for å bruke en minst nylig brukt algoritme på tvers av alle nøkler når minnegrensene er nådd. Konsekvent overvåking av hukommelsesbruk og HIT/MISS -forhold er kritisk.
Redis Cluster presterer best når datasettet passer fullt ut i minnet på hver node. Unngå overdreven bytte eller overkommitasjon av hukommelsen.
Sporadministrasjon og datadistribusjon
Klyngen deler tastaturet i 16 384 hash -spor som er fordelt over alle mesternoder. Når du oppretter klyngen, må du forsikre deg om at alle sporene er dekket av en masternode. Klienter må være klyngebevisste for å rute spørsmål til riktig node basert på hash-sporberegning.
Unngå operasjoner som involverer flere nøkler som er kartlagt til forskjellige spor, da disse krever kryss-spot-kommandoer som er begrenset eller mindre effektive.
Bruk verktøy som `Redis-CLI-Cluster Create` to Bootstrap Clusters med riktig sporallokering og replikaoppgave automatisk.
Klientkonfigurasjon for Cluster Awareness
Konfigurer klientbiblioteker for å håndtere Redis Cluster Topology endres grasiøst. Mange klientbiblioteker gir klyngestøtte, inkludert automatisk oppdagelse og rekonfigurasjon av klyngeknuter når de mislykkes eller stokker på nytt. Dette forhindrer klientfeil og forbedrer påliteligheten under Node Failovers eller skaleringsoperasjoner.
Klienter bør konfigureres til å prøve på nytt på flytting eller spørre omdirigeringer og opprettholde oppdaterte visninger av klyngestaten.
Sikkerhetshensyn
Sikre klyngeknuter ved å aktivere passordgodkjenning (`Cordpass` -direktiv), begrense nettverkstilgang via brannmurregler og begrense utsatte grensesnitt via` bind` -konfigurasjonen. Bruk TLS -kryptering hvis mulig for å beskytte data under transport.
Deaktiver beskyttet modus når du kjører Redis i klyngemodus, men sikrer nettverkskonfigurasjoner isolerer klyngen fra ikke -tillit til klienter.
overvåking og vedlikehold
Implementere omfattende overvåking av klyngehelse, inkludert tilgjengelighet av nodene, latens, hukommelsesbruk, replikasjonsforsinkelse og endringer i klyngen. Verktøy som Redis Sentinel, tredjeparts overvåkningsplattformer eller skyleverandørløsninger bør være en del av den operative strategien.
Test regelmessig failover -mekanismer og utfør kontrollerte node omstart eller skaleringsøvelser for å bekrefte klyngens motstandskraft.
Performance Tuning
Tune Redis og klyngekonfigurasjonen basert på spesifikasjoner for arbeidsmengde:
- Minimer blokkering av kommandoer og bruk rørlednings- eller LUA -skript for å optimalisere gjennomstrømningen.
-Juster `Cluster-Node-Timeout` i henhold til nettverksforsinkelsesegenskaper for å unngå falske feil.
- Bruk jevn hashing og smart nøkkelnavn for å optimalisere spaltefordelingene.
- Unngå store nøkler eller verdier og vurder å dele store gjenstander i mindre biter.
- Bruk Redis Cluster sine innfødte mekanismer for å skalere horisontalt ved å tilsette eller fjerne noder og balansere spor.
Backup and Recovery
Design sikkerhetskopieringsstrategier tilpasset klyngeoppsettet. Bruk periodiske RDB -øyeblikksbilder fra mesternoder eller kopier og oppbevar sikkerhetskopiering eksternt. Unngå å gjenopprette sikkerhetskopier direkte på en live klynge uten riktig synkronisering av spor og nodetilstand.
For gjenoppretting, bruk prosedyrer anbefalt av Redis for å rekonstruere klynger fra lagrede konfigurasjoner og sikkerhetskopier.
Sammendrag
Beste praksis for Redis Cluster Configuration Cover:
- Sette opp minst tre mesternoder med kopier for failover.
-Sikre riktige klynge-relaterte konfigurasjonsdirektiver (`Cluster-Enabled`,` Cluster-Config-File`, `Cluster-Node-Timeout`).
- Distribusjon av noder på passende maskinvare med riktige nettverksinnstillinger for klient- og klyngebusskommunikasjon.
- muliggjøre utholdenhet og innstilling av minne- og utkastelsespolitikk for å samsvare med krav om arbeidsmengde.
- Administrere hash-spor effektivt og sikre at klienter er klyngebevisste.
- Sikre klyngen med autentisering og nettverkskontroller.
- Overvåking av klyngehelse og ytelse regelmessig.
- Planlegging for sikkerhetskopiering, gjenoppretting og skalering av operasjoner nøye.