2015-03-10 12 views
7

Redis viene spesso utilizzato come cache, sebbene offra molto più della semplice memorizzazione nella cache in memoria (supporta la persistenza, ad esempio).Redis vs MemoryCache

Quali sono i motivi per cui si sceglie di utilizzare Redis anziché .NET MemoryCache? Mi vengono in mente i tipi di persistenza e di dati (diversi dalle coppie chiave-valore), ma sono sicuro che ci devono essere altri motivi per utilizzare un ulteriore livello architettonico (ad es. Redis).

+0

Non MemoryCache è incorporato nel server dell'app? Redis è un server di rete a cui è possibile accedere da diversi client. –

risposta

8

MemoryCache è incorporato nel processo, quindi può essere utilizzato come un semplice archivio di valori-chiave da quel processo. Una controparte server separata di MemoryCache sarebbe .

Considerando che redis è un server di strutture dati che può essere ospitato su altri server può interagire con la rete proprio come memcached, ma redis supporta un lungo elenco di tipi di dati complessi e operazioni su di essi, per fornire memorizzazione nella cache logica e intelligente.

+0

Quali vantaggi ottieni avendo in un processo separato? – Gigi

+0

Non solo processo separato, anche un server separato. Un semplice vantaggio è la separazione dei moduli nelle architetture, l'altra è la scalabilità. MemoryCache sarà limitato alla memoria del server dell'app, mentre in Redis o Memcached è possibile aggiungere più server o aumentare la memoria del server redis per mantenere buone le prestazioni. – DhruvPathak

+0

Non ne sono convinto. Per quanto ne so, Redis replica le chiavi attraverso le istanze, quindi l'utilizzo della memoria sarebbe lo stesso ovunque (in parole povere). – Gigi