Blocco distribuito Redis

Blocco distribuito Redis

In Redis, il partizionamento si riferisce alla divisione dei dati in più istanze. Ciò significa che ogni Redis detiene una sezione dell'intero set di dati. È una funzionalità utile, soprattutto quando si tratta di set di dati di grandi dimensioni.

Vediamo vari tipi di partizionamento in Redis e i costi e i benefici di ciascuno.

Tipi di partizionamento Redis

Ci sono due meccanismi di partizionamento in Redis:

  1. Partizionamento della gamma
  2. Hash Partitioning

Rang Partitioning

Il modo migliore per spiegare il partizionamento è usare un'analogia. Supponiamo che tu abbia quattro istanze Redis: R0, R1, R2 e R3. Inoltre, supponiamo che tu debba archiviare le chiavi nel formato dell'utente: [ID].

È possibile utilizzare il partizionamento della gamma per dividere i dati nelle istanze Redis disponibili.

Nel partizionamento dell'intervallo, mappini una sezione dei tuoi dati in un'istanza specifica. Ad esempio, è possibile prendere le chiavi dall'utente: [ID - ID] e mapparlo all'istanza R0. L'istanza R1 può contenere il sottoinsieme delle chiavi dall'utente [ID - ID] e così via.

Questa è la forma più semplice e applicabile di partizionamento in Redis. Tuttavia, fornisce una limitazione.

Il partizionamento dell'intervallo richiede una tabella che mappa un intervallo specifico per il suo cluster corrispondente.

La tabella di mappatura richiede di essere gestita e applicata per ogni tipo di dati partizionato.

Hash Partitioning

La seconda alternativa al partizionamento della gamma è il partizionamento di hash. Redis utilizza una funzione di hashing per convertire una chiave in un numero in questo metodo di partizionamento.

Ad esempio, se abbiamo un "fatto" chiave, possiamo convertirlo in un numero usando una funzione di hashing come CRC-16.

Questo dovrebbe restituire il numero come 8167.

Redis applica quindi un'operazione di modulo al numero e restituisce il risultato da 0 a 3.

Per esempio:

8167 % 2

L'operazione di cui sopra dovrebbe restituire 1. Redis quindi utilizza questo valore per determinare in quale cluster la chiave dovrebbe essere memorizzata. Nel nostro esempio, il "fatto" chiave è archiviato nell'istanza R1.

NOTA: Non è così che l'operazione di hashing viene eseguita in Redis. Quanto sopra è solo un'analogia.

Vantaggi del partizionamento.

  1. Il partizionamento consente a più istanze di condividere i dati di memoria e archiviazione.
  2. Consenti il ​​ridimensionamento della potenza di calcolo.

Svantaggi del partizionamento

  1. L'operazione multi-chiavi non è supportata.
  2. Non è possibile eseguire una transazione Redis usando più tasti.
  3. Introduce l'ambiguità quando si tratta di persistenza.
  4. La riduzione o la crescita dei dati si rivela difficile.

Conclusione

In questa guida, hai scoperto i vari meccanismo per il partizionamento di Redis. Controlla la documentazione per saperne di più.