Haven’t been too heavy on the tech talk here, but a recent discovery bears notice. I’ve been doing some development with redis, “a persistent key-value database…”. If you’re a programmer redis is like a persistent dictionary, similar to Berkeley DB. redis has a network server baked in. Since redis maintains all of its data completely in main memory it’s blazingly fast but is limited by the amount of RAM on a machine.
The key feature of note though is that the values stored in the DB are not restricted to simple strings. Lists, sets, and ordered sets are also provided. A number of atomic operations are also available on instances of these objects. This makes redis very convenient for a number of multiprocessing tasks where the processes coordinate through redis values.
As far as I can tell, the concept of having a handful of higher level datatypes as values in a key-value store is relatively new, although I’m sure there’s some obscure CS paper or tech report somewhere that covers the topic.