Latest web development tutorials

partizione Redis

Partizione è suddiviso in una pluralità di elaborazione dati istanze Redis, ogni istanza per salvare solo un sottoinsieme della chiave.

Vantaggi di partizionamento

  • Utilizzando la memoria e valori più di un computer di, ci permettono di costruire un database più grande.
  • Con multicore e multiprocessore computer, che ci permette di espandere la capacità di calcolo; attraverso più computer e schede di rete, permettendo di ampliare la larghezza di banda della rete.

partizione inadeguata

Alcuni Redis caratteristiche in termini di prestazioni di partizionamento non è molto buona:

  • Operazione coinvolge più di una chiave non è generalmente supportato. Per esempio, quando due set mappato su diversi casi di Redis, non sarà in grado di eseguire questi due set operazione di intersezione.
  • Essa comprende una serie di operazioni redis chiave non può essere utilizzato.
  • Quando si utilizza le partizioni, la più complessa l'elaborazione dei dati, ad esempio, è necessario gestire RDB multipla / AoF file e file di backup da più istanze di persistenza e di accoglienza.
  • Aggiungere o rimuovere capacità è anche più complicato. Redis maggior supporto cluster a incrementi di runtime, i dati trasparenti eliminare i nodi rapporti di forza, ma simile alla partizione cliente, agenti ed altri sistemi non supportano questa funzione. Tuttavia, questa tecnica chiamata presharding è utile.

tipo di partizione

Redis Ci sono due tipi di partizioni. Supponiamo ci sono quattro Redis esempio R0, R1, R2, R3, e utente simile: 1, user: una pluralità di tasto 2 una tale rappresentazione sugli utenti, data la chiave per selezionare una varietà di modi diversi in cui la chiave viene memorizzata nel caso . In altre parole, ci sono diversi sistemi per mappare una chiave per un servizio Redis.

gamma di partizionamento

Il modo più semplice è quello di partizionare gamma partizionamento è associata a una serie di specifiche per soggetto esempio Redis.

Ad esempio, ID da 0 a 10000 utenti salverà l'istanza R0, ID da 10001-20000 utenti verrà salvato R1, e così via.

Questo approccio è fattibile e uso pratico, è quello di avere un intervallo inferiore alla gamma dell'istanza tabella di mappatura. Questa tabella deve essere gestito, ma anche bisogno di mappare i vari oggetti, di solito Redis non è un buon metodo.

partizionamento hash

Un altro approccio è quello di hash partizioni di partizionamento. Questo vale per qualsiasi chiave, e non ha bisogno di essere object_name: Questa forma, semplice come descritto di seguito:

  • Usando un tasto funzione hash viene convertito in un numero, ad esempio utilizzando la funzione crc32 hash. L'attuazione di CRC32 pippo chiave (foobar) uscita sarà un numero intero di simile 93.024.922.
  • Questo modulo intero, che è stato convertito in digitale tra 0-3, può essere mappato al numero intero istanza 4 Redis essere uno. 93.024.922% 4 = 2, che è foobar chiave dovrebbe essere salvato esempio R2. Nota: L'operazione di modulo è di prendere il resto l'aggiunta, l'operatore% viene normalmente implementato utilizzando una varietà di linguaggi di programmazione.