Redis is a popular so-called “NoSQL” database. In addition to the key-value storage you’ll find in other solutions such as Memcache, there are sets, lists, and all of their associated operations.
Last night Redis founder Salvatore Sanfilippo and major contributor Pieter Noordhuis came to London for the second Redis London meetup. Pieter went into the technical details of what developers can expect from the next major version of Redis, while Salvatore went into the work he has been putting in to the Redis Cluster application.
Most of the new features in Redis 2.2 are around memory optimisations. “Redis 2.2 is a testament to how much Redis 2.0 sucked” Salvatore said later – referring to just how many memory usage improvements and throughput increases have been made in the release so far. New internal datastructures such as ziplists provide greater memory efficiency when used with smaller data value sizes. However for larger data values, the current datastructures are more efficient. Therefore although Redis allows developers to specify which type they want to use, it will switch from one to the other transparently if it becomes more efficient to use the alternative.
Redis Cluster is a branch of Redis designed to run on multiple servers. Salvatore went into detail on how the clustering system is going to work. As opposed to many existing clustering techniques currently in use for NoSQL databases – such as Memcache and Kestrel – in which the cluster nodes do not have knowledge of each other, each Redis node will know of every other Redis node in the cluster. This allows for much more efficient management of resharding and better replication between masters and slaves, which will use the replication feature already built into Redis.
Redis Cluster is expected to have a “first build” available in 2 months, with a beta for developers to start working with in around 4 months. For more information on Redis, check out their project page or follow Salvatore on Twitter.