concept key - value store in category nosql

This is an excerpt from Manning's book Making Sense of NoSQL.
Table 1.1. Types of NoSQL data stores—the four main categories of NoSQL systems, and sample products for each data store type
Typical usage
Examples
Key-value store—A simple data storage system that uses a key to access a value
- Image stores
- Key-based filesystems
- Object cache
- Systems designed to scale
- Berkeley DB
- Memcache
- Redis
- Riak
- DynamoDB
Column family store—A sparse matrix system that uses a row and a column as keys
- Web crawler results
- Big data problems that can relax consistency rules
- Apache HBase
- Apache Cassandra
- Hypertable
- Apache Accumulo
Graph store—For relationship-intensive problems
- Social networks
- Fraud detection
- Relationship-heavy data
- Neo4j
- AllegroGraph
- Bigdata (RDF data store)
- InfiniteGraph (Objectivity)
Document store—Storing hierarchical data structures directly in the database
- High-variability data
- Document search
- Integration hubs
- Web content management
- Publishing
- MongoDB (10Gen)
- CouchDB
- Couchbase
- MarkLogic
- eXist-db
- Berkeley DB XML
Let’s begin with the key-value store and then move on to its variants, and how this pattern is used to cost-effectively solve a variety of business problems. We’ll talk about
What a key-value store is Benefits of using a key-value store How to use a key-value store in an application
Let’s take a look at how an application developer might use a key-value store within an application. The best way to think about using a key-value store is to visualize a single table with two columns. The first column is called the key and the second column is called the value. There are three operations performed on a key-value store: put, get, and delete. These three operations form the basis of how programmers interface with the key-value store. We call this set of programmer interfaces the application program interface or API. The key-value interface is summarized in figure 4.5.
Figure 4.5. The key-value store API has three simple commands: put, get, and delete. This diagram shows how the put command inserts the input key "123" and value "value123" into a new key-value pair; the get command presents the key "456" and retrieves the value "value456"; and the delete command presents the key "789" and removes the key-value pair.
![]()
Instead of using a query language, application developers access and manipulate a key-value store with the put, get, and delete functions, as shown here:
In addition to being simple, a key-value store is a general-purpose tool for solving business problems. It’s the Swiss Army knife of databases. What enables the generality is the ability for the application programmer to define what their key structures will be and what type of data they’re going to store in the values.
Now that we’ve looked at the benefits and uses of a key-value store, we’ll look at two use case examples. The first, storing web pages in a key-value store, shows how web search engines such as Google easily store entire websites in a key-value store. So if you want to store external websites in your own local database, this type of key-value store is for you.
The second use case, Amazon simple storage service (S3), shows how you can use a key-value store like S3 as a repository for your content in the cloud. If you have digital media assets such as images, music, or video, you should consider using a key-value store to increase the reliability and performance for a fraction of the cost.