Redis is easy to install, clean, nothing complex. The usage via CLI or drivers for programming languages - I wrote two for Google Go and Erlang/OTP - is simple too. But whats most fascinating is the fact, that it's not only a key/value store. The different types like hash, list, set, sorted set, hyper log log, and geo are great and useful. Also pub/sub and the internal Lua scripting help a lot. And last but not least is Redis extreme fast.
The transaction model is a bit different. Users have to understand it and care for it. Additionally there's no real security model, only a simple authentication via password. There's no multi-user model and no right control regarding types, keys, or key patterns. So this has to be done by the using application while the database is secure on an internal server.
The database does not work with queries on values. Keys can be queried, other indexes have to by created by using sorted sets. But that's not the typical usage of Redis, so no larger problem.
Simply try it together with the CLI and visit the web site http://redis.io to see the available commands. Most clients directly let you use these commands or provide them through own functions.
Mostly two types of use cases. One is the typical use as a cache, simply because it's fast and the automatic key expiration (if wanted) helps a lot. The other one is the temporary aggregation of statistical data using the different data types. For some smaller projects I'm also using it as a simple data store.