VMware Hires Key NoSQL Developer
Join the DZone community and get the full member experience.Join For Free
Evolve your approach to Application Performance Monitoring by adopting five best practices that are outlined and explored in this e-book, brought to you in partnership with BMC.
Redis is a key-value store that is extremely fast with a richer API than something like Tokyo Cabinet. It's similar to memcached because values can be strings, but the dataset is not volatile. Unlike memcached, Redis' values can also be lists, sets, hashmaps, blobs, and ordered sets. It also allows you to append a value to the end of an item list that has already been stored for a given key. All of its data types can be manipulated with atomic operations to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and more. This is a distinguishing feature of Redis, and it means that it can be turned into a best-of-breed tally server.
The data store's speed comes from its increased in-memory operations. It only flushes to disk periodically, so in exchange for high speed, there's a greater risk that data could be lost during a crash. Redis also claims to support sharding, but it actually just has the client run a hash function on its key to determine which server should receive the value. Any database can do this. Redis is written in ANSI C, so it works with many POSIX systems including Linux, Mac OS X, BSD, and Solaris. Redis is released under the BSD license. For a comparison of Redis and other NoSQL databases, you can check out this article.
VMware is interested in Redis technology because of the benefits for large scale systems when there are "alternatives to storing state within a centralized relational store (RDBMS)." VMware says that some Redis users have made it there sole data storage solution because it offers several ways to persist data. As cloud computing pushes the boundaries of application scalability, new data persistence technologies will play a key role in facilitating those large scale applications. VMware cites Google App Engine's utilization of BigTable as the most evident example of scalable data storage.
VMware has already proven itself as a company that nurtures open source. Redis will join VMware's current open source divisions, which include SpringSource and Zimbra. This is a major reason why Sanfilippo felt he could take Redis to VMware and maintain an open philosophy for the technology.
Before Redis became popular, Sanfilippo, was using it to scale a few critical things in one of his startup companies. He decided to make it open source after just a few weeks and that's when the community started contributing and asking for more features. Soon, Redis became a bigger deal than his day jobs (writing web apps and iPhone apps). Once people started doing real business with Redis, Sanfilippo started getting job offers from various companies.
Sanfilippo initially wanted to sell supporting tools for Redis in order to monetize his project, but instead he decided to join one of the companies that wanted him to work on Redis full-time. When VMware contacted Sanfilippo, they immediately wanted to talk about Redis internals, use cases, possible optimizations, and other deep technical items of interest. Sanfilippo enjoyed the tone of his conversations with VMware and to him it seemed that many of the engineers at the company were doing work that was similar to his. This relationship, along with the reputation for open source stewardship, is what sealed the deal for Sanfilippo.
Redis is already a stable, production-ready data store, but with VMware Sanfilippo intends to strengthen that stability and establish better quality assurance. This will also give Sanfilippo will some time to finish his book on Redis.
Opinions expressed by DZone contributors are their own.