NoSQLとSQLの議論全体を無視すると、最善のアプローチはそれらを組み合わせることだと思います。つまり、システムの一部(複雑なルックアップ、トランザクション)にはMySQLを使用し、他の部分(パフォーマンス、カウンターなど)にはredisを使用します。
私の経験では、スケーラビリティ(多くのユーザー...)に関連するパフォーマンスの問題により、最終的にはMySQLサーバーから負荷を取り除くために何らかのキャッシュを追加する必要があり、redis/memcachedはその点で非常に優れています。