Ignorując całą debatę NoSQL vs SQL, myślę, że najlepszym podejściem jest ich połączenie. Innymi słowy, używaj MySQL do niektórych części systemu (złożone wyszukiwania, transakcje) i redis do innych (wydajność, liczniki itp.).
Z mojego doświadczenia wynika, że problemy z wydajnością związane ze skalowalnością (wielu użytkowników...) ostatecznie zmuszają cię do dodania pewnego rodzaju pamięci podręcznej, aby usunąć obciążenie z serwera MySQL, a redis/memcached jest w tym bardzo dobry.