Redis Cluster Keyslot

Redis Cluster Keyslot

Redis høy tilgjengelighet

Redis er en datalager med lav latensdata som gir sharding- og replikeringsfunksjonene ut av boksen. Det sikrer den høye tilgjengeligheten av Redis -forekomsten til interessentene. Følgende to mekanismer har blitt brukt i Redis Data Store for å gi høy tilgjengelighet.

  • Horisontal skalering med gruppering
  • Redis Sentinel

Den horisontale skaleringen fokuserer alltid på å øke antall forekomster i stedet for å vokse datakraft per forekomst. Redis Clustering er basert på horisontal skalering, der et sett med noder tar seg av forekomstenens kontinuerlige funksjon.

Redis Cluster

Redis Cluster består av flere noder der hver node inneholder en rekke hash -spor. Vanligvis har en klynge 16384 hash -spor. Hver Redis -tast er assosiert med et hash -spor, og for å beregne hash -sporet per tast, bruker Redis CRC16 i Redis Key Modulo 16384 algoritmer. Det er basert på master-replica-teknikken der en masternode mislykkes, og den respektive replikaen skyter inn og fortsetter å operere på vegne av den mislykkede noden.

La oss anta at noden X mislykkes på grunn av en nettverkssvikt. Da vil Redis -klyngen tilordne arbeidsmengden til noden X til replika -noden X1, som vil sikre jevn funksjon. Redis -klynger kan også dele de innkommende dataene til forskjellige noder automatisk.

Redis Cluster Commands

Flere kommandoer er tilgjengelige å bruke mot Redis -klynger. Cluster -kommandoen er en containerkommando som har flere underkommandoer. Du kan bruke klynge hjelp underkommando for å sjekke listen over tilgjengelige underkommandoer med bruken.

Klyngehjelp

Som forventet returnerer det et array -svar som vist i det følgende.

Produksjon:

I denne guiden vil vi fokusere på Keyslot underkommando som er tilknyttet containerkommandoen Klynge.

Redis Keyslot -kommando

De Keyslot Kommando brukes til å sjekke hash -sporverdien for en gitt Redis -nøkkel som returnerer en heltallverdi. Når du trenger å vite om den tilknyttede noden for en bestemt nøkkel, vil denne kommandoen være nyttig. En annen brukssak ville være å teste hashingalgoritmene dine ved å sammenligne dem med hasjene som genereres av denne kommandoen og sjekke for likhet. i tillegg Keyslot Kommandoen har lineær tidskompleksitet.

Syntaks

Følgende er syntaks for Redis Keyslot underkommando.

Cluster Keyslot Redis_key

redis_key: Dette er den unike identifikatoren som vi bruker i Redis Data -butikker for å identifisere hvilken som helst verdi som er lagret.

Denne kommandoen returnerer hash -sporverdien til den spesifiserte Redis -tasten som er lagret. Vanligvis er denne verdien et heltall fra 0 til 16383 for en gitt klynge.

Eksempel 01 - Inspiser hash -sporet og klyngenoden for en gitt tast

La oss lage en Redis -klynge med seks noder der tre av dem er mesternoder, og resten er replikker. Vi kan bruke SPILLEAUTOMATER underkommando for å sjekke hvordan nodene har blitt tildelt med hash -sporene.

Cluster -spor

Som forventet har klyngeinformasjonen kommet ut som i det følgende.

La oss legge et par nøkler til vår Redis -klynge, som vist i det følgende.

Sett reisende: 1: Plasser Frankrike
Sett reisende: 2: Plasser India

Nå kan vi bruke Keyslot underkommando for å sjekke hva som er hash -sporene som hver tast er blitt tildelt.

Cluster Keyslot Traveller: 1: Place

Utgangen ser ut som følgende.

Den returnerte heltallet 8963, noe som betyr at hasjsporet er 8963. Det skal ligge i området 5461 - 10922, vist i følgende utgang.

Masternoden er 6001, og denne nøkkelen skal lagres der. Den samme prosedyren kan følges for å identifisere noden for Reisende: 2: Sted nøkkel.

Eksempel 02 - Håndtering av flere nøkler etter samme Redis -node

De Keyslot Kommando støtter hashtags der Redis Cluster Key Hashing -algoritmen bare hashes karakterene mellom og . Hver gang en redis -tast følger det nevnte mønsteret, vil den generere hash -sporet basert på karakterene inne i de krøllete seler, og de andre karakterene blir ikke vurdert. Med hashtags kan vi tvinge til å lagre flere nøkler i samme node, som vist i det følgende.

La oss lage et par nøkkelverdipar, som vist i det følgende.

Sett bruker: 1: Carcolor Common_hash rød
Sett bruker: 2: Carcolor Common_Hash Blå

Som vist i eksemplet inneholder tastene den vanlige hashtaggen common_hash. Derfor vil både hash -sporverdiene som genereres av Redis Cluster Key Hashing -algoritmen være den samme for begge tastene. La oss sjekke hash -sporene for begge nøklene som bruker Keyslot underkommando, som vist i det følgende.

Cluster KeySlot Bruker: 2: Carcolor Common_Hash
Cluster Keyslot Bruker: 1: Carcolor Common_Hash

Som forventet returnerer begge kommandoene den samme hasjsporverdien, 8276, noe som betyr at nøkler er lagret i samme node. I henhold til eksemplene ovenfor kan du se hvor nyttig Keyslot Kommandoen er når du arbeider med Redis -klynger.

Konklusjon

For å oppsummere, støtter Redis sharding, replikasjon og høy tilgjengelighet ved horisontal skalering. Den horisontale skaleringen er oppnådd ved bruk av Redis -klyngene. Som diskutert, er hver klynge en samling noder der en node kan inneholde flere hash -spor. En klynge kan inneholde 16384 maksimale hasjspor og rundt 1000 noder. Som sitert følger Redis-klynger master-replica-teknikken der en masternode mislykkes, og kopien vil begynne å fungere på vegne av den mislykkede noden. Redis har en liste over kommandoer for å operere på klynger. De Keyslot Kommando er en av dem som brukes til å få hash -sporverdien for en spesifikk Redis -nøkkel. Denne kommandoen støtter også hashtags.