Tukaj je primerjava delovanja Redis Sentinel in Redis Clustering v smislu zanesljivosti:
Redis Sentinel
- Visoka razpoložljivost: Redis Sentinel zagotavlja visoko razpoložljivost s samodejnim preklopom. Če glavno vozlišče odpove, bo Sentinel samodejno povišal eno od replik vozlišč v novo glavno.
- Enotna točka odpovedi: Čeprav Sentinel zagotavlja visoko razpoložljivost, ima še vedno eno samo točko odpovedi - sama vozlišča Sentinel. Če odpovejo vsa vozlišča Sentinel, bo uvedba Redisa izgubila možnost izvajanja samodejnega preklopa.
- Asinhrono podvajanje: Redis Sentinel uporablja asinhrono podvajanje med glavnim vozliščem in vozliščem replike. To pomeni, da obstaja nevarnost izgube podatkov, če master odpove, preden jih replike popolnoma dohitijo.
- Omejena razširljivost: Redis Sentinel je zasnovan za razmeroma majhno število vozlišč Redis. Ne zagotavlja zmožnosti vodoravnega skaliranja Redis Clustering.
Redis Clustering
- Porazdeljena arhitektura: Redis Clustering ima porazdeljeno arhitekturo brez ene same točke napake. Podatki so samodejno razdeljeni v več vozlišč Redis.
- Visoka razpoložljivost: Redis Clustering zagotavlja visoko razpoložljivost s samodejnim preklopom. Če glavno vozlišče odpove, bo gruča samodejno povišala eno od replik vozlišč v novo glavno vozlišče.
- Sinhrono podvajanje: Redis Clustering je mogoče konfigurirati za uporabo sinhronega podvajanja, ki zagotavlja boljša jamstva za skladnost podatkov v primerjavi s Sentinelovim asinhronim podvajanjem.
- Horizontalna skalabilnost: Redis Clustering je zasnovan za horizontalno skaliranje. Vozlišča lahko preprosto dodate ali odstranite v gručo, da povečate zmogljivost.
Če povzamemo, Redis Sentinel zagotavlja visoko razpoložljivost za relativno majhno uvedbo Redisa, vendar ima eno samo točko napake v samih vozliščih Sentinel. Po drugi strani pa Redis Clustering ponuja bolj porazdeljeno in razširljivo arhitekturo z močnejšimi jamstvi za skladnost, zaradi česar je bolj zanesljiva izbira za večje, zahtevnejše uvedbe Redisa.
Izbira med Sentinel in Clustering je odvisna od specifičnih zahtev glede zanesljivosti, razširljivosti in doslednosti vaše aplikacije. Za kritične, zelo razširljive aplikacije je Redis Clustering na splošno bolj zanesljiva možnost.
Citati:[1] https://cloudinfrastructureservices.co.uk/redis-sentinel-vs-cluster/
[2] https://www.linkedin.com/pulse/redis-sentinel-vs-cluster-osama-ahmed
[3] https://stackoverflow.com/questions/53060714/redis-sentinel-standalone-or-cluster-which-is-best-for-session
[4] https://redis.io/docs/latest/operate/oss_and_stack/management/scaling/
[5] https://groups.google.com/g/redis-db/c/KK7LW0dBD5Q