Key Value Stores

Key Value Databases are databases that store their data in simple data structures, i.e. keys and values. They do not have the concept of tables or documents. Redis, DynamoDB, and Memcached are among the most popular.1 They are often used for worker queues such as Ruby’s Sidekiq2, website caching, processing logs, or any time data needs to be read immediately after it’s been written.

Other examples include RocksDB and Badger, which are embeddable in applications.

RocksDB is written in C++. It’s used in things like ksqlDB3, a streaming database in the Kafka ecosystem, and CockroachDB4, a distributed SQL database. Badger is written in Golang and is used as the data store for Dgraph.5

Key Value stores are known for very efficient writes. For example, I’ve seen Redis achieve 100k+ ops/second without breaking a sweat. Redis benchmarked some common operations and show that it’s possible to get between 70k-400k writes per second depending on how much network IO is involved.6

  1. Key Value Store 

  2. Sidekiq Using Redis 

  3. Introducing ksqlDB 

  4. Why we built CockroachDB on top of RocksDB 

  5. Why we chose Badger over RocksDB in Dgraph 

  6. Redis Benchmarks