2015-03-10 15 views
7

Redis jest często używany jako pamięć podręczna, mimo że oferuje o wiele więcej niż tylko buforowanie w pamięci (na przykład obsługuje utrwalanie).Redis vs MemoryCache

Jakie są powody, dla których ktoś wybrałby opcję Redis zamiast .NET MemoryCache? Dotyczy to trwałości i typów danych (innych niż pary klucz-wartość), ale jestem pewien, że muszą istnieć inne powody zastosowania dodatkowej warstwy architektonicznej (np. Redis).

+0

Czy MemoryCache nie jest osadzony na serwerze aplikacji? Redis to serwer sieciowy, do którego można uzyskać dostęp od różnych klientów. –

Odpowiedz

8

MemoryCache jest osadzony w procesie, dlatego może być używany tylko jako zwykły magazyn klucz-wartość z tego procesu. Oddzielnym odpowiednikiem serwera MemoryCache byłby memcached.

Podczas gdy redis jest serwerem struktury danych, który może być hostowany na innych serwerach, może wchodzić w interakcje z siecią podobnie jak memcached, ale redis obsługuje długą listę złożonych typów danych i operacji na nich, aby zapewnić logiczne i inteligentne buforowanie.

+0

Jakie korzyści można uzyskać, biorąc je w osobnym procesie? – Gigi

+0

Nie tylko oddzielny proces, nawet oddzielny serwer. Jedną z prostych korzyści jest oddzielenie modułów w architekturach, inne to skalowalność. MemoryCache będzie ograniczony do pamięci serwera aplikacji, podczas gdy w Redis lub Memcached możesz dodać wiele serwerów lub zwiększyć pamięć serwera redis, aby utrzymać dobrą wydajność. – DhruvPathak

+0

Nie jestem przekonany. O ile mi wiadomo, Redis replikuje klucze w różnych instancjach, więc użycie pamięci będzie wszędzie takie samo (z grubsza rzecz biorąc). – Gigi

Powiązane problemy