Redis _can_ be used as a cache, but it's not the only use case.
I've personally mostly used it as a message broker (celery in python, resque in ruby), but it can definitely be used as a database.
Bottom line, it's a very flexible tool, and can be more than "just a cache".