Redis is an open source in-memory data structure that has key-value architecture. It can be used as a database also as a cache. If you what memcached is and what is mongodb (or any other nosql database), then we can say Redis is something in between.
If you have a big data load or you want to load some configuration/session for users in your website you might need Redis. First is faster than any other databases so you can read and write more data. It also has built in replication as well as supports disk persistence.
Secondly consider following scenario: you have many cloud servers that serves your website, and some users enters your website and data is stored in Server A, then later Server A receives huge load and user is served by Server B. In that case all user session stored in Server A isn't accessible by Server B. This issue can be solved by Redis, instead of storing user temporary data in Servers we store them in Redis and if users is redirected to any server in our pool still has all configuration, temporary data.
Redis supports many datatypes like Strings, Lists, Sets, Hashes, Sorted Sets, also not often uses Bitmaps, Hyperlogs, Geospatial indexes. But there is a downside - it doesn't support data encryption or any other advanced security features, so it should consumed by backend only in production environment.