Redis to zdalny serwer struktury danych. Jest to z pewnością wolniejsze niż przechowywanie danych w pamięci lokalnej (ponieważ wiąże się z obwodami gniazd w celu pobrania/przechowania danych). Ma jednak również kilka interesujących właściwości:
-
Redis może być dostępny dla wszystkich procesów twoich aplikacji, prawdopodobnie działających na kilku węzłach (coś, czego pamięć lokalna nie może osiągnąć).
-
Przechowywanie pamięci Redis jest dość wydajne i odbywa się w osobnym procesie. Jeśli aplikacja działa na platformie, której pamięć jest zbierana ze śmieci (node.js, java, itp...), umożliwia obsługę znacznie większego cache/store pamięci. W praktyce bardzo duże stosy nie radzą sobie dobrze z językami zbierającymi śmieci.
-
Redis może w razie potrzeby zachować dane na dysku.
-
Redis to coś więcej niż zwykła pamięć podręczna:zapewnia różne struktury danych, różne zasady eksmisji przedmiotów, blokowanie kolejek, pub/sub, atomowość, skrypty Lua itp...
-
Redis może replikować swoją aktywność za pomocą mechanizmu master/slave w celu wdrożenia wysokiej dostępności.
Zasadniczo, jeśli potrzebujesz skalowania aplikacji na kilku węzłach współdzielących te same dane, wymagane będzie coś takiego jak Redis (lub dowolny inny zdalny magazyn kluczy/wartości).