Summary of use cases for non-relational storage
To understand why NoSQL is important to you as an app developer, let’s consider the use cases for some of these features:
<ul> <li> Frequently-written, rarely read statistical data (for example, a web hit counter) should use an in-memory key/value store like <a href="http://code.google.com/p/redis/">Redis</a>, or an update-in-place document store like <a href="http://www.mongodb.org/">MongoDB</a>. </li> <li> <a href="http://techcrunch.com/2010/03/16/big-data-freedom/">Big Data</a> (like weather stats or business analytics) will work best in a freeform, distributed db system like <a href="http://hadoop.apache.org/">Hadoop</a>. </li> <li> Binary assets (such as MP3s and PDFs) find a good home in a datastore that can serve directly to the user’s browser, like <a href="http://aws.amazon.com/s3/">Amazon S3</a>. </li> <li> Transient data (like web sessions, locks, or short-term stats) should be kept in a transient datastore like <a href="http://memcached.org/">Memcache</a>. (Traditionally we haven’t grouped memcached into the database family, but <a href="http://adam.heroku.com/past/2010/7/19/memcached_a_database/">NoSQL has broadened our thinking on this subject.</a>) </li> <li> If you need to be able to replicate your data set to multiple locations (such as syncing a music database between a web app and a mobile device), you’ll want the replication features of <a href="http://couchdb.apache.org/">CouchDB</a>. </li> <li> High availability apps, where minimizing downtime is critical, will find great utility in the automatically clustered, redundant setup of datastores like <a href="http://cassandra.apache.org/">Casandra</a> and <a href="https://wiki.basho.com/display/RIAK/Riak">Riak</a>. </li> </ul> <p> Despite all the use cases described above, there will always be a place for the highly normalized, transactional, ad-hoc-query capabilities of <span class="caps">SQL</span> databases. We’re adding new tools to our toolbox, not removing old ones. </p> </blockquote> <div class="posterous_quote_citation"> via <a href="http://blog.heroku.com/archives/2010/7/20/nosql/">blog.heroku.com</a> </div> <p> Nice summary on the Heroku blog about use cases for non-relational storage services. </p>