Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jaké jsou nejlepší postupy pro konfiguraci klastru redis


Jaké jsou nejlepší postupy pro konfiguraci klastru redis


Redis Cluster je populární řešení pro škálování nasazení redis k dosažení vyšší dostupnosti, tolerance poruch a střetu dat napříč více uzly. Správná konfigurace klastru redis zahrnuje několik osvědčených postupů, které zajišťují optimální výkon, spolehlivost a spravovatelnost.

Clusterová architektura a konfigurace uzlů

Cluster Redis vyžaduje, aby spolehlivě fungovaly alespoň tři hlavní uzly. V ideálním případě by produkční klastr měl obsahovat minimálně šest uzlů, přičemž každý master má jednu nebo více replika. Toto nastavení zajišťuje vysokou dostupnost a umožňuje automatické převzetí služeb při selhání v případě selhání jakéhokoli hlavního uzlu. Každý uzel běží v režimu clusteru a musí mít povoleno konkrétní konfigurace, včetně:

- `Yes` s podporou clusteru povolit režim clusteru v každé instanci Redis.
-`cluster-config-file` Určení souboru, kde je uložen stav uzlu klastru (např.` uzly.conf`).
-`Cluster-Node-Timeout` Definování maximální doba, kterou lze uzel, může být nedotknutelný, než bude považován za neúspěšný (obvykle nastaven na 5 000 až 15 000 milisekund).

`Cluster-config-file` je spravován Redis automaticky a nesmí být upravován ručně, protože udržuje kritické informace o stavu, jako jsou ID uzlu, mapování a vlastnictví slotů. Každý uzel se při spuštění přiřazuje jedinečné ID uzlu, které během jeho života přetrvává, i když se změní IP nebo port.

Nastavení hardwaru a sítě

Uzly by měly být nasazeny na samostatných fyzických nebo virtuálních strojích, aby se zabránilo jednotlivým bodům selhání. Síťová připojení mezi uzly musí umožnit jak komunikační porty klienta (obvykle TCP 6379, nebo používaný servisní port), tak i port sběrnice klastru (druhý port obvykle servisní port TCP + 10000, např. 16379) pro shlukovou internetodovou komunikaci.

Pečlivě nakonfigurujte síťová rozhraní a firewall, aby umožňovaly tento provoz mezi uzly a volitelně mezi klienty a uzly klastru. Nastavení směrnice `bind` na konkrétní soukromé IPS spíše než na vázání na všechna rozhraní zvyšuje zabezpečení.

Persistence a trvanlivost dat

Povolte mechanismy perzistence, jako jsou snímky RDB nebo AOF (přidat pouze soubor) v závislosti na požadovaném trvanlivosti dat a kompromisu s výkonem. AOF poskytuje lepší trvanlivost protokolováním každé operace zápisu, ale může přidat režii latence a IO. Kombinace snímků RDB s AOF může pomoci vyvážit výkon a trvanlivost.

Směrnice „Appendonly Yes“ umožňuje režim AOF. Tato nastavení by měla být pečlivě naladěna podle vzorů pracovního vytížení a přijatelných oken pro ztrátu dat.

Zásady správy a vystěhování paměti

Nakonfigurujte nastavení `maxMeMory` tak, aby zajistilo, že Redis zapadá do dostupné paměti v uzlu. Vyberte příslušnou politiku vystěhování pomocí `maxmemory-policy`, jako je` allkeys-lru` k použití nejméně nedávno použitého algoritmu napříč všemi klíči, když jsou dosaženy meze paměti. Kritické je konzistentní monitorování využití paměti a poměry HIT/Miss.

Cluster Redis funguje nejlépe, když datový soubor plně zapadá do paměti v každém uzlu. Vyhněte se nadměrnému výměně nebo nadměrnému zavádění paměti.

Správa slotů a distribuce dat

Shluk rozděluje klávesový prostor na 16 384 hashových slotů, které jsou distribuovány ve všech hlavních uzlech. Při vytváření klastru se ujistěte, že všechny sloty jsou pokryty hlavním uzlem. Klienti si musí být vědomi klastru, aby směřovali dotazy do správného uzlu na základě výpočtu hash slotů.

Vyvarujte se operací zahrnující více klíčů mapovaných na různé sloty, protože tyto vyžadují příkazy napříč skvrnami, které jsou omezené nebo méně efektivní.

Použijte nástroje jako `redis-cli --cluster create` to bootstrap klastry se správnou přidělením slotů a přiřazením repliky automaticky.

Konfigurace klienta pro povědomí klastru

Nakonfigurujte klientské knihovny tak, aby zvládly topologii redis cluster elegantně. Mnoho klientských knihoven poskytuje podporu clusteru, včetně automatického objevu a rekonfigurace uzlů klastrů, když selhávají nebo přeskupují sloty. To zabraňuje chybám klienta a zlepšuje spolehlivost během převzetí služeb při selhání uzlů nebo škálovacích operacích.

Klienti by měli být nakonfigurováni tak, aby se opakovali na přesunu nebo se zeptali přesměrování a udržovali aktualizované pohledy na stav clusteru.

Bezpečnostní úvahy

Zabezpečete uzly klastru povolením ověřování hesla (`` `StrancePass`), omezením přístupu k síti prostřednictvím pravidel brány firewall a omezením exponovaných rozhraní prostřednictvím konfigurace` bind`. Pokud je to možné, použijte šifrování TLS k ochraně dat při tranzitu.

Zakázat chráněný režim při spuštění redis v režimu klastru, ale zajistěte, aby konfigurace sítě izolovaly klastr od nedůvěryhodných klientů.

Monitorování a údržba

Implementujte komplexní monitorování zdraví klastrů, včetně dostupnosti uzlů, latence, využití paměti, zpoždění replikace a změn stavu clusteru. Součástí operační strategie by měly být nástroje jako Redis Sentinel, monitorovací platformy třetích stran nebo řešení poskytovatelů cloudu.

Pravidelně testujte mechanismy převzetí služeb při selhání a provádějí regulované restartování uzlů nebo škálovací cvičení k ověření odolnosti klastru.

Ladění výkonu

Naladění redis a konfigurace klastru na základě specifik pracovního vytížení:

- Minimalizujte příkazy blokování a použijte skripty potrubí nebo LUA pro optimalizaci propustnosti.
-Upravte `cluster-ude-timeout` podle charakteristik latence sítě, abyste se vyhnuli falešným převzetí služeb při selhání.
- K optimalizaci rozdělení slotů použijte konzistentní pojmenování hashování a inteligentních klíčů.
- Vyvarujte se velkých klíčů nebo hodnot a zvažte rozbití velkých objektů na menší kousky.
- Využijte nativní mechanismy redis klastru pro horizontální měřítko přidáním nebo odstraněním uzlů a převahovacích slotů.

Zálohování a zotavení

Strategie zálohování návrhu zarovnané s nastavením klastru. Používejte periodické snímky RDB z hlavních uzlů nebo repliky a externě ukládají zálohy. Vyvarujte se obnovy záloh přímo na živém klastru bez synchronizace stavu slotů a uzlu.

Pro zotavení použijte postupy doporučené společností Redis pro rekonstrukci klastrů z uložených konfigurací a záloh.

Shrnutí

Osvědčené postupy pro konfiguraci klastru redis:

- Nastavení nejméně tří hlavních uzlů s replikami pro převzetí služeb při selhání.
-Zajištění správných konfiguračních směrnic souvisejících s klastrem (`` cluster-enabled`, `cluster-config-file`,` cluster-node-timeout`).
- Nasazení uzlů na vhodný hardware se správným nastavením sítě pro komunikaci klienta a sběrnice sběrnice.
- Umožnění perzistence a vyladění politik paměti a vystěhování, které odpovídají požadavkům pracovního vytížení.
- Efektivní správa hashových slotů a zajištění toho, aby si klienti věděli, že jsou klastrové.
- Zajištění klastru pomocí ověřování a ovládacích prvků sítě.
- Pravidelně monitorování zdraví a výkonu klastru.
- Pečlivě plánování operací zálohování, zotavení a škálování.

Použití těchto osvědčených postupů zajišťuje robustní, škálovatelné a vysoce dostupné prostředí Clusteru Redis vhodné pro výrobní pracovní zátěž. Výše uvedená témata zahrnují základní provozní, architektonické a bezpečnostní úvahy pro nasazení Clusteru Redis.