Redis vs Zookeeper


25

Sembra sciocco confrontare questi due server considerando che sono pensati per cose molto diverse. Ma se ci pensate, possono fare molte cose simili: archiviare i dati di configurazione, blocco distribuito, accodamento, ecc.

Ho un'istanza di Redis che sto usando per alcune cose legate alla produzione, ma vorrei fare una semplice sincronizzazione tra i server (principalmente modifiche alla configurazione che non richiedono il push up del codice e il semplice blocco tra i server). Cosa mi dà Zookeeper che Redis non vorrebbe?


Redis non è (specificamente) per la configurazione. Sono prodotti abbastanza diversi.
Rein Henrichs,

4
Perché? Stiamo usando PostgreSQL per la configurazione. Cosa rende la configurazione così diversa dalla logica aziendale?
Dmitry Negoda,

Risposte:


26

Usiamo Redis e Zookeeper al lavoro, quindi questo è per esperienza diretta

Redis è veloce; molto, molto veloce. È anche immediatamente coerente, quindi è buono per set di dati in rapido movimento. Il rovescio della medaglia è che, in esecuzione su un server, se fallisce, si perde l'accesso in scrittura fino a quando un altro server prende posto. La sostituzione del server è un'operazione manuale a meno che non venga automatizzata dall'utente. (È ancora possibile ottenere l'accesso in lettura ai dati se si configura un'istanza slave).

Zookeeper offre anche coerenza immediata. Non è la metà della velocità, ma si ripristinerà automaticamente (dove possibile) a fronte di un errore, quindi se hai bisogno di un accesso in scrittura continuo, anche quando i tuoi server falliscono su di te, ti consigliamo di utilizzare Zookeeper.

Il mio consiglio è, utilizzare lo zookeeper per il coordinamento: tracciare quali nodi sono attivi, elezione dei leader all'interno di un gruppo, ecc. Utilizzare i redis per i set di dati che richiedono scritture veloci ma dove l'interruzione occasionale non è un disastro. Contatori di hit per pagine Web, ad esempio.


Attualmente sto lavorando a un progetto e pensavo che il guardiano dello zoo sarebbe stato la strada da percorrere. Se hai altre informazioni che puoi condividere da qualche parte sarebbe meraviglioso. Abbiamo a che fare con più scambi di annunci e il monitoraggio di circa 4 miliardi di eventi al giorno. Stiamo cercando di ridisegnare i nostri server front-end e stavamo guardando Zookeeper per archiviare informazioni su conteggi di tracciamento, ponderazione minima ecc. Posso attestare la velocità di redis ma la mia esperienza manca di una struttura gerarchica che stavamo cercando di usare con Zookeeper. La tua posizione è cambiata in 3 anni dal 2012?
Chris Hinshaw,

@ChrisHinshaw Sto affrontando lo stesso problema. Considerando sia Redis che Zookeeper per un gestore di risorse distribuito che richiede sia blocchi distribuiti che prestazioni. Hai qualche feedback?
Rafael Saraiva,

Sto finendo di riscriverlo ora. Sono andato con redis a causa della velocità. Ci sono stati alcuni problemi di prestazioni con Zookeeper ma non ricordo i problemi. Stiamo memorizzando i dati della serie temporale in base a metriche e conteggi. Sto usando gli script lua per aggiornare i conteggi per ciascuno dei periodi di tempo per limitare il numero di chiamate. Un esempio è che abbiamo una chiave hash per le richieste di offerta sotto forma di br: 1: 2: 3: 4 in cui i numeri rappresentano una gerarchia di metrica: agenzia: inserzionista: campagna: annuncio. Nell'hash i valori sono anno: mese: giorno: ora: minuto. Nella mia sceneggiatura lua aggiornerei i conteggi per ciascuno
Chris Hinshaw,

delle fasce orarie. Quindi il mio script divide i due punti y: m: d: h e aggiorna i totali per ogni sezione. In questo modo posso usare un hscan o recuperare un elenco di chiavi per qualsiasi timeslice. La cosa più importante in redis è trovare un modello gerarchico per le chiavi. Ad un certo punto in futuro mi piacerebbe spostare tutto questo in scintille con un negozio di cassandra. Se avessi il tempo, implementerei lo Spark Spark per valutarlo. Penso che sarebbe alla pari con Redis e offre la flessibilità di fare analisi.
Chris Hinshaw,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.