2013-01-11 13 views
11

Possiamo usare MongoDB come una sostituzione della libreria di memorizzazione nella cache (memcache e memcached)?MongoDB è la migliore sostituzione di Memcached?

e quali sono i valori di deferenza in MongoDB e Memory Caching Library.

+0

Penso che una differenza sia la memoria cache che fornisce un intervallo di tempo per mantenere l'ora specifica dell'oggetto, ma con mongoDB non possiamo farlo. – Ayaz

+0

Non una domanda negativa: c'è sicuramente la precedenza nell'utilizzo di MongoDB come cache. –

+0

@CRUSADER In realtà MongoDB è stato creato pensando a due casi di studio. Entrambi erano come un livello di archiviazione, ma uno era per la sostituzione di un database e l'altro per la sostituzione della cache. – Sammaye

risposta

6

Il problema più grande che hai con MongoDB è che non naturalmente e con forza caricare tutto in memoria a differenza di memcached, che, come nel suo nome, è un negozio di valore chiave in memoria.

Si deve anche considerare che MongoDB non gestisce la memoria da solo, ma consente al sistema operativo di controllarlo completamente utilizzando l'algoritmo LRU nativo. Non riesco a capire i problemi che questo potrebbe darti perché non ho i tuoi dati o gli indici o le query.

Tuttavia, molte persone che cercano di utilizzare memcache come database (che molti fanno) stanno scoprendo che non è particolarmente veloce a farlo (non è stato progettato appositamente per questo) e questo è il punto in cui MongoDB riesce a sfondare.

Se MongoDB è un sostituto di memcache dipende dalle tue necessità, ma se hai bisogno è così che MongoDB ha bisogno di sostituire la cache, allora potresti anche sostituire SQL con MongoDB, questo è il mio onesto parere su la questione perché hai sfocato le linee tra cache e archiviazione.

7

Uno dei problemi principali di MongoDB come archivio di cache è che non ha un meccanismo di scadenza. Maggiori dettagli a riguardo si possono trovare in this answer.

AGGIORNATO Dal momento che MongoDB v2.2 consente TTL per le raccolte. Grazie a JohnnyHK per indicare.

Suggerisco di utilizzare Redis for caching e MongoDB come database. Lavorano bene insieme.

+3

A partire da MongoDB 2.2 non è più vero: http://docs.mongodb.org/manual/tutorial/expire-data/ – JohnnyHK

+0

@JohnnyHK Buon punto! Grazie! – Voldy

Problemi correlati