A Look at Some NoSQL Databases – MongoDB, Redis and Basho Riak


Monitis, the first affordable network and systems monitoring solution based 100% in the Cloud, continues its series of blog posts meant to offer a comprehensive guide to NoSQL technology and brands. We want to help you make the right choice that fits the particular needs of your company.

Over the past several weeks, we presented a series of posts on existing popular NoSQL data storage tools that are intended to store unprecedented large amounts of data, offer flexible and horizontal scalability and provide blazing-fast processing queries. We also got down to the nitty-gritty and compared several well-known NoSQL DBs…such as Apache Cassandra, and HBase.

Now, in this post, we’ll look at MongoDB, Redis and Riak.


MongoDB combines the best of key-value stores, document databases, object databases, and realtional database management systems (RDBMS). What that means is that MogoDB shards automatically (as with a key-value store), allows JSON-based dynamic schema documents, and offers a rich query language in the manner of an RDBMS. Plus, MongoDB offers auto sharding (existing and new data are sharded automatically) and a MapReduce implementation feature.

Take a closer look at a MongoDB cluster and you’ll see that it is made of several kinds of servers:

  • The shard servers that store data
  • The configuration servers that store the configuration
  • The router servers that receive and route the requests
  • One server thread used by MapReduce

Some more facts about MongoDB: It is a distributed document-oriented storage tool, and uses the C++ implementation language. As far as schema goes, JSON-style documents are stored, and you can use dynamic schemas. Among companies using MongoDB: Shutterfly, Evite and The New York Times — pretty impressive! One of the great things I like about this product is that there is a very neat web interface that lets you try MongoDB in your browser — but using a JavaScript shell.


Redis is not a “plain” key-value store, as it supports a variety of values in different data structures — such as lists and sets of binary-safe strings, as well as sorted sets, which contain a floating-number score. Last year, VMWare took over as project sponsor of Redis.

Here are a few facts about Redis’ makeup:

It features a key-value orientation, and its implementation language is ANSI C. Redis is not distributed, however. Under its schema: Redis offers a key-value store, using a server key-name to store and retrieve values. Like MongoDB, Redis has impressive client list — including Python, Twisted Python and Google’s new Go language. Redis is open source, and there’s a very cool web page that offers a Redis tutorial that allows you to try it directly from your browser using JavaScript. Find it at: http://try.redis-db.com.

Basho Riak

Riak is a hybrid database that is manufactured by Basho Technologies but is based on Amazon Dynamo. It acts as a document-oriented database and also a distributed key-value store. It’s fault-tolerant and scales linearly. It is it’s intended for use in web applications. And it is like Cassandra in that it does not have a central controller, and so there is no single point of failure.

Riak is a fully distributed key/bucket store, and implements MapReduce.

The design of Riak includes three basic elements: buckets, keys, and values. Data is organized into buckets, which are little more than flat namespaces for logically grouping key-value pairs. Buckets can store the data directly or be a link to another bucket. All the nodes in the cluster play the same role. The data (existing and new) are sharded automatically among the nodes.

Riak comes in both a commercial version and open source version. And it runs on Unix but not Windows systems. Riak is distributed, both a document and key-value stored system, and its implementation language is Erland, along with some C and JavaScript.

As far as schema goes, Riak is schema-less and doesn’t use specific data types. The values associated with keys are objects. Riak interacts with clients via a JSON over HTTP interface; drivers for Erlang, Python, Java, PHP, JavaScript, and Ruby; and, finally, a Protocol Buffers client interface.Riak’s customer base includes Comcast.

What does all this have to do with Monitis, you may ask? Well, more and more, our clients, who depend on our ability to monitor serversnetworks,and a host of other key metrics 24/7 from the cloud, want our advice, too, on what kind of cloud- or Saas-based database technology to use. And we’re happy to oblige.

Let us know if this information is useful to you, and look for more posts about NoSQL tools.