VMware expands Redis programming options
- 26 October, 2012 20:51
Redis, an open source in-memory data store maintained by VMware, has been upgraded to be more stabile and make more judicious use of memory, two traits that should make it more appealing for enterprise deployments.
"Redis 2.6 is more mature than Redis 2.4 in many ways, and users will have a better overall experience," said Salvatore Sanfilippo in an email interview. Sanfilippo is a VMware open-source developer who authored Redis.
"We already see that Cloud Foundry users love Redis for its simplicity of use. We anticipate this will only increase with Redis 2.6," Sanfilippo wrote, referring to how VMware offers the data store as part of its Cloud Foundry PaaS (platform as a service) offering.
One of a growing number of NoSQL databases, Redis is an advanced key store, one that can accept keys in a wide range of formats, including strings, hashes, lists and other formats. Because of the unique trait, Redis allows complex operations to be executed on the server, minimizing the workloads on less-efficient clients.
"Redis is particularly suited for tasks where there is a very high load in general, and especially for very write-heavy workloads, where the data set size is in a range suitable to be stored in-memory," Sanfilippo wrote. "Because the Redis data model is different and exposes an API to manipulated fundamental data structures, there are problems that are simpler to model with Redis."
One job that Redis is particularly well suited for is real-time analysis of data, Sanfilippo said. The Redis data store, which is usually run entirely in memory, can easily work in conjunction with another on-disk data store that would hold a much larger collection of data.
"Just as PostgreSQL was the basis for so many leading analytic relational DBMS', Redis is being adapted for a variety of NoSQL-style products," said database industry analyst Curt Monash. In addition to real-time analysis, Redis is also frequently used as a caching layer, like "memcache on steroids," Sanfilippo said, and even as a messaging system. "Both types [of applications] depend on writing data quickly into simple data structures," Monash added.
The new features with the Redis 2.6 release offer a wider range of capabilities to help in these duties. For this release, significant parts of the Redis core engine were rewritten.
Perhaps most notably, Redis now supports the use of the Lua scripting language for server-side scripting. According to Sanfilippo, this will give developers much more flexibility in preparing material from the data store. "Users are no longer limited to the set of core commands that Redis provides," he said. "Scripting makes users able to build their complex primitives on top of the fundamental ones."
Another new feature Sanfilippo praised was bit operations. "This is a game changer for analytics with Redis," he wrote. The ability to manipulate data at the single bit level will allow programs to quickly combine and count bits, using only a fraction of the memory needed otherwise.
Other new features are: the software can now be set to expire a command within milliseconds, useful for speedy transactions; users can set up read-only backups, or slave, copies of a data store; every directive with in the core redis.conf engine has a corresponding command line option; and the build system has been improved.