REmote DIctionary Server or Redis for short is the in-memory data structure store. It is mostly used as a database, cache or message broker. Redis is an open source NoSQL Database which is blazingly fast, developer friendly, supports numerous languages and provides effective caching. Its support for various data structures like strings, lists, sets, hashes along with the different queries, on-disk persistent, timed key expiration, automatic failover and transactions make it a great technology. Furthermore, it is already being used by tech-giants like GitHub, Pinterest, Snapchat, StackOverflow, Craigslist, Digg and others.
Now, let’s get deeper into the story and know “why Redis is a great technology”…
A Brief Account On Redis!
Let’s go 10 years back where it all got started. Salvatore Sanfilippo an Italian developer took the initiative for improving the LLOOGG performance. In order to do so, he started the Redis project in early 2009 and by June 2009, Redis become stable with enough base feature set for serving production traffic at LLOOGG. Meanwhile, LLOOGG was real-time web analytics based startup of Salvatore.
On June 19, another milestone was hit when Salvatore retired MySQL installation and deployed Redis to LLOOGG’s production environment. Salvatore always knew that Redis can support more complex types as values and he posted a link for Redis on Hacker News. Since then, Redis popularity grew immensely. Even Salvatore quickly incorporated new features and dealt with all the database corruption, instability and other problems. Today, Redis boasts a huge community of developers who are also referred as Redis geeks.
However, Salvatore could not have made Redis a huge success all by himself. As he needed someone to use and share Redis and it was David Welton who tried it. David also took the risk and shared Redis on Hacker News on which only 5 people commented. Among those, just one offered some help and that one person was Ezra Zygmuntowicz. He was the popular developer of Ruby on Rails and one of the founders of Engine Yards. Later, Zygmuntowicz also implemented the first Ruby client library for Redis and tweeted about it. This made Redis popular among the rails community and over the years, Redis grew its popularity.
Its success was not just because of the efforts made by Salvatore, David or Zygmuntowicz but the support of numerous other individuals. Nevertheless, thanks to these 3 who had the guts to become the first followers of Redis made all this possible.
Recently Redis has turned 10 and supports different types of complex data structures and a module system enabling developers to build more. With all this let’s discuss some of the Redis Features which makes it a great technology.
Before going any further, here’s a Freebie for all the awesome readers! You guys can take “Learn Redis from Scratch“ online tutorial for completely Free. This tutorial covers a basic introduction, installation, Redis commands, data types, data persistence, Redis & Node.js and much more essential concepts.
Why Redis is a Great Technology?
Redis continues to hit all its milestones as recently, they have just organized the biggest ever Redis conference in San Francisco which was attended by over 1500 Redis geeks. Following this, StackOverflow announced that Redis is the most loved database by the programmers for the third consecutive year. This survey by StackOverflow also announced an increase of 7% of developers who are showing interests to work with Redis. Going after all its success & popularity, let’s understand all its attractive features which makes it a great technology.
#1. Open Source & Portability
Redis is an open source (BSD Licensed) & multi-platform in-memory data structure store. It is written in ANSI C and supports several POSIX systems like Linux, Solaris, Mac OS X, BSD and others. Although, there is no official support for Windows but Microsoft develops and builds a Win-64 port of Redis.
#2. It’s Blistering Fast
It stores the whole dataset in its primary memory which makes it super fast. Going by the numbers, it loads up to 110,000 SETs/second. Additionally, 81,000 GETs/second can be retrieved in an entry level Linux box. Thanks to its quick response time, the server can be designed around a single-threaded model minimizing the synchronization amount. Additionally, it also supports Pipelining of commands and helps you to use multiple values in a single command. Ultimately, this speed ups the communication with the client libraries.
#3. Data Structures
The best part of Redis or one of the main features which make Redis popular is that it can support different types of data structure. It can support strings, hashes, sets, sorted sets with range queries, hyperlogs, lists, bitmaps and geospatial indexes. Moreover, using mass insertion, it can easily load million of pieces of data into the cache in a very short period of time.
#4. Redis Cache
Its cache is capable enough to withstand any failures for providing uninterrupted service. As Redis can set up efficient replication at any time, its cache will be running even if any slave nodes are down.
It supports the append-only file persistence mode. Here, changes are asynchronously saved on disk using flexible policies. These are based on elapsed time and/or a number of updates since last save.
#6. Simple Codebase
Whether you are fond of Redis or not, you just can not argue with its simplicity. It includes a small number of source files which are written in ANSI C. This makes this program easy to tinker with.
#7. Simpler API
Its codebase is simple & the API is simpler! Its API includes a set of easy-to-understand commands having fantastic documentation. Each command in the Redis has its own running time which is listed next to its description.
#8. Atomic Operations
In Redis, operations on the different data types are atomic which makes it safe to set or increase a key or add and remove elements from a set or increase a counter and so on.
#9. Supported Languages
At last, it also supports sharding which makes distribution of dataset across multiple Redis instances like other key-value stores very easy.
Redis has managed to come a long way and recently, it celebrated its 10th year anniversary. Going by its history, it was not only just the Italian developer who developed this technology but a lot of other individuals who not only trusted it but also shared it in their communities. Today, thanks to all its features and capabilities make it one of the greatest technologies for the developers to work in. Some even calls it Memcached on steroids because of its insanely fast nature. So this was the story of Redis and all the features which makes it great. What do you think? Do mention your comments, thoughts and feedback in the comment section below.
If you are interested in learning all the technical aspect of Redis then you can try out the ‘Redis For Developers’ online tutorial. It covers a wide variety of topics related to Redis such as Setup, Data types, PHP clients, Python clients, HyperLogLog and much more!