Redis: Excellent open source NoSQL database for web apps

It all started with Memcached back in 2003. This is an in-memory data structure store that’s part of the NoSQL family of data management solutions and based on the key-value data model. It had its limitations, but it was a crucial foundation of modern Web applications.

And then came Redis in 2009. It’s similar to Memcached, but it’s superior in so many ways. In fact, it’s been described as “Memcached on steroids”. If you need a database, cache, and message broker then this is the one you get.

Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. Read on.

KEY FEATURES

  • It supports a very wide range of data structures, from strings and hashes to hyperloglogs and geospatial indexes with radius queries.
  • Built-in Replication: This allows for slave Redis servers to act as exact copies of master servers. Data can also be persisted, so that a backup can be quickly available after a failure or a shutdown.
  • Cache data eviction: Instead of just LRU (Least Recently Used), data eviction in Redis allows for you to choose from 6 different data eviction policies. Memory management and the selection of eviction candidates are also more sophisticated.
  • Flexibility: In regards to the objects you can cache, key names and values can be as big as 512MB each.
  • Redis Hash: You can store the fields and values of an object and manage them all with just a single key. This reduces the consumption of resources while it increases performance.
  • Transparent data stores: The server can manage the data directly.
  • Redis Sentinel: Deployment can resist some types of failures even without human intervention.

Image Credit: tostring.it (here)

Related Posts