How to choose correct database system?

I can think of some potential use cases:

In the games industry, I have seen NoSQL databases used with great success for large-volume semantic logging, using REST over HTTP. We would “fire-and-forget” log messages from millions of game clients and servers into a NoSQL database for later analysis. We implemented it using NHibernate, so that we could swap out the underlying database to compare Oracle to CouchDB and MongoDB. This was many years ago, though. It might not make sense today.

Another use case, which I’m currently considering, is to leverage CouchDB’s unique replication capabilities to replicate certain kinds of data between our ~400 retail stores in the Nordics, whilst supporting off-line editing and two-way synchronization between nodes. In combination with “CouchApps,” this would allow applications within each store to continue satisfactory operations without a stable internet connection. We would also get document versioning for free out-of-the-box.

A third example (as you mentioned) would be using a Redis NoSQL database as a caching mechanism of sorts. This seems to be fairly common these days, although I haven’t tried that myself (yet).

Of course, such challenges might be possible to overcome with SQL databases as well, although one could argue that NoSQL databases could be better suited for certain kinds of problems.