Ignoring the whole NoSQL vs SQL debate, I think the best approach is to combine them. In other words, use MySQL for some parts of the system (complex lookups, transactions) and redis for others (performance, counters etc).
In my experience, performance issues related to scalability (lots of users…) eventually forces you to add some kind of cache to remove load from the MySQL server and predis/memcache etc is very good at that.
I would recommend you to read this tutorial which contains also use cases. Since redis is rather a memory oriented it’s really good for frequently updated real-time data, such as session store, state database, statistics, caching and it’s advanced data structures offers versatility to many other scenarios.
Redis, however, isn’t a NoSQL replacement for classic relational databases since it doesn’t support many standard features of RDBMS world such as querying of your data which might slow it down. Replacements are rather document databases like MongoDB or CouchDB and redis is great at supplementing specific functionality where speed and support for advanced data structures come handy.
You can check out the list of famous platforms who are using redis in my post on complete introduction to redis.