Ignorant tout le débat NoSQL vs SQL, je pense que la meilleure approche est de les combiner. En d'autres termes, utilisez MySQL pour certaines parties du système (recherches complexes, transactions) et redis pour d'autres (performances, compteurs, etc.).
D'après mon expérience, les problèmes de performances liés à l'évolutivité (beaucoup d'utilisateurs...) vous obligent finalement à ajouter une sorte de cache pour supprimer la charge du serveur MySQL et redis/memcached est très bon dans ce domaine.