Zależy od tego, czego potrzebujesz, ogólnie myślę, że:
- Nie powinieneś przejmować się występami. Redis jest szybszy na rdzeń z małymi wartościami, ale memcached może używać wielu rdzeni z jednym plikiem wykonywalnym i portem TCP bez pomocy klienta. Również memcached jest szybszy z dużymi wartościami rzędu 100k. Redis ostatnio znacznie poprawił duże wartości (niestabilna gałąź), ale nadal memcached jest szybszy w tym przypadku użycia. Chodzi o to, że żadne z nich nie będzie wąskim gardłem dla zapytań na sekundę, które mogą dostarczyć.
- Powinieneś dbać o wykorzystanie pamięci. W przypadku prostych par klucz-wartość pamięć podręczna jest bardziej wydajna pod względem pamięci. Jeśli używasz skrótów Redis, Redis jest bardziej wydajny pod względem pamięci. Zależy od przypadku użycia.
- Powinieneś zainteresować się trwałością i replikacją, dwiema funkcjami dostępnymi tylko w Redis. Nawet jeśli Twoim celem jest zbudowanie pamięci podręcznej, pomaga to, że po aktualizacji lub ponownym uruchomieniu Twoje dane nadal tam są.
- Powinieneś dbać o rodzaj operacji, których potrzebujesz. W Redis jest wiele złożonych operacji, nawet biorąc pod uwagę przypadek użycia buforowania, często można zrobić o wiele więcej w jednej operacji, bez konieczności przetwarzania danych po stronie klienta (czasami potrzeba wielu operacji we/wy). Te operacje są często tak szybkie, jak zwykłe GET i SET. Więc jeśli nie potrzebujesz tylko GET/SET, ale bardziej złożonych rzeczy, Redis może bardzo pomóc (pomyśl o buforowaniu osi czasu).
Bez przypadku użycia trudno jest teraz wybrać, ale myślę, że w wielu sprawach Redis ma sens, ponieważ nawet jeśli nie chcesz go używać jako DB, będąc o wiele bardziej zdolnym, możesz rozwiązać więcej problemów, nie tylko buforowanie, ale nawet przesyłanie wiadomości, ranking i tak dalej.
PS oczywiście mogę być stronniczy, ponieważ jestem głównym deweloperem projektu Redis.