It really pisses me off to see Redis described as a caching system. Yes it's good for caching, but it can do far more than just that. E.g the blocking list operations can be used to make lightweight ad-hoc communication channels - I'm using this in a project just now. Loadable Lua functions mean you can embed significant application logic in Redis - I've not used this yet but I intend to soon.