Redis 2.6 "is near" and now feature frozen
Version 2.6 of the key-value store Redis was due in the first weeks of the year, but Salvatore Sanfilippo, also known as antirez, recently pointed out that there had not even been a release candidate for the version. This, said Sanfilippo, was because the developers had "put a lot more than expected inside this release". He has since announced that Redis 2.6 is now feature frozen and only bug fixing – new tests and some pending code merges will be done in the coming weeks. There is no set date, though, for the release of Redis 2.6.
Redis is a RAM-based, persistent, data structure server written in ANSI C, which can be networked to replicate data in a master-slave configuration. VMWare sponsors the Redis development work of lead developer Sanfilippo and fellow developer Pieter Noordhuis.
The headline feature is server-side scripting using the Lua language; according to the documentation the eval function will allow Lua scripts to be executed in the server. Those scripts will be able to call Redis functions using a .call() or .pcall() method and data types are automatically converted between Redis and Lua. A Redis Lua script is given a maximum execution time of five seconds to run, though this value can be changed before being terminated, and should only manipulate Redis data and not access the external system.
The ability to expire keys with a millisecond resolution has been incorporated, along with versions of the EXPIRE, TTL and SETEX command (PEXPIRE, PTTL and PSETEX) which let the user set timeouts in milliseconds. Other enhancements include better seeding of hashtable randomisation to protect against collision attacks, better large object writing performance, and an ability to tune output buffers according to class of clients. Support for atomic fast floating-point counters, faster append-only-file (AOF) writing and better semantics for handing AOF files have also been incorporated. The virtual memory code which was deprecated in Redis 2.4 is no longer present in 2.6.
Within Redis, "significant parts" of the core have been reworked and new internal APIs have been introduced as part of plans to develop Redis Cluster on top of the new code. That cluster code has been removed in 2.6 and will
be returned to the system in Redis 3.0 "when it is more complete and stable". One difference in development is that Redis 2.6 is a spinoff of the unstable branch of Redis which is going, eventually, to be Redis 3.0. The change will make it easier to backport changes from the unstable branch to Redis 2.6.
Sanfillipo also says that Redis 2.6 now displays ASCII art when the server starts, noting that "This is where our major efforts went in the latest months".