As a fundamental data representation or data structure, key value is very simple consisting of (key, value) pairs so that a key is not repeated in the data set (i.e. it’s unique). If you want to retrieve the value associated with a key all you need is the key itself. The number of operations used with key-value pairs is fairly small.
Add: Add a pair to the collection of data
Remove: Remove a pair from the collection of data
Reassign: Change or reassign the value associated with a key
Get: Get a value associated with a key
As an example of what you can do with key-value storage and how simple it can be, Seagate has created a new storage drive called Kinetic that you address using REST-like commands such as get, put, and delete. A simple open-source library allows you to then develop IO libraries so that applications can perform IO to/from the drives. Some object storage solutions such as Swift have already been ported to use the Kinetic drives. Ceph is also developing a version that can use Kinetic drives. Other object based storage systems such as Lustre and Gluster could theoretically use this technology as well.