Redis 2.4 dropping virtual memory
In the new 2.4 release candidate (RC5) of Redis key-value store, the virtual memory system introduced in version 2.0 is being deprecated ready for removal; using virtual memory in 2.4 will display a warning that it is not a good idea to use it as it will be removed completely in future versions. The new release does optimise memory use and persistence. Lead developer Salvatore Sanfilippo, also known as antirez, has detailed the changes in a blog post saying he expects the 2.4 RC5 to be rebranded as 2.4.0 stable in a few weeks if no critical bugs are discovered.
The changes include a new scheme where, by automatically selecting an appropriate in-memory encoding for data, Redis is able to optimise the storage of smaller data sets, including sorted sets, by holding them as blob-encoded data. This also speeds up persistence of those sets as they are already encoded ready for persistence. It is only when data objects pass a particular threshold that Redis switches back to its traditional storage system. Other changes include improvements to the write commands to allow multiple arguments, the use of the jemalloc library for better memory allocation, fewer copy-on-write operations and more information and introspection commands (INFO, OBJECT and CLIENT).
Slave connections to Redis are now non-blocking, the command line and benchmarking are improved, and a new test suite is aiding the developers with continuous integration. Finally, the developers have colourised the output of Redis's make process to make compilation errors easier to see.