Redis partisjonering

Redis partisjonering

I Redis refererer partisjonering til å dele opp data i flere forekomster. Dette betyr at hver Redis holder en del av hele datasettet ditt. Det er en praktisk funksjon, spesielt når du arbeider med store datasett.

La oss se på forskjellige typer partisjonering i Redis og kostnadene og fordelene ved hver.

Typer redis partisjonering

Det er to partisjoneringsmekanismer i Redis:

  1. Rekkevidde partisjonering
  2. Hash -partisjonering

Rangpartisjonering

Den beste måten å forklare partisjonering er å bruke en analogi. Anta at du har fire Redis -forekomster: R0, R1, R2 og R3. Anta også at du må lagre nøkler i brukerformatet: [ID].

Du kan bruke Range Partitioning for å dele opp data i de tilgjengelige Redis -forekomstene.

I rekkevidde partisjonering kartlegger du en del av dataene dine i en bestemt forekomst. For eksempel kan du ta nøklene fra brukeren: [id - id] og kartlegge den til forekomst R0. Forekomst R1 kan holde undergruppen av nøkler fra bruker [id - id] og så videre.

Dette er den enkleste og mest anvendelige formen for partisjonering i Redis. Imidlertid gir det en begrensning.

Rangepartisjonering krever en tabell som kartlegger et spesifikt område til den tilsvarende klyngen.

Kartleggingstabellen må administreres og brukes for hver partisjonert datatype.

Hash -partisjonering

Det andre alternativet til rekkevidde partisjonering er hash -partisjonering. Redis bruker en hashingfunksjon for å konvertere en nøkkel til et tall i denne partisjoneringsmetoden.

Hvis vi for eksempel har et nøkkel "faktum", kan vi konvertere det til et tall ved hjelp av en hashfunksjon som CRC-16.

Dette skal returnere nummeret som 8167.

Redis bruker deretter en moduloperasjon på nummeret og returnerer resultatet fra 0 til 3.

For eksempel:

8167 % 2

Ovennevnte operasjon skal returnere 1. Redis bruker deretter denne verdien for å bestemme hvilken klynge nøkkelen skal lagres i. I vårt eksempel lagres nøkkel "faktum" i forekomsten R1.

MERK: Dette er ikke hvordan hasingoperasjon utføres i Redis. Ovennevnte er bare en analogi.

Fordeler med partisjonering.

  1. Partisjonering gjør at flere forekomster kan dele minne- og lagringsdataene.
  2. Tillat skalering av beregningskraft.

Ulemper ved partisjonering

  1. Multi-nøkkeloperasjon er ikke støttet.
  2. Du kan ikke utføre en Redis -transaksjon ved hjelp av flere nøkler.
  3. Introduserer tvetydighet når du arbeider med utholdenhet.
  4. Krympende eller voksende data viser seg vanskelig.

Konklusjon

I denne guiden oppdaget du den forskjellige mekanismen for Redis -partisjonering. Sjekk dokumentasjonen for å lære mer.