Developers
July 14, 2020

Redis Labs to Launch RedisRaft that Brings a New Strong-Consistency with Strict Serialization Deployment Option to Redis

Redis Labs is developing a new module for open source Redis. RedisRaft is set to operate a number of Redis servers as a single fault-tolerant, strongly consistent cluster.

In the world of databases, Redis is somewhat unique, blending the best characteristics of a number of different approaches. Now the organization behind it, Redis Labs, has unveiled a new way to deploy and operate Redis servers.

What Is Redis?

Redis occupies a unique place in the data storage world. For decades, relational databases have been the industry standard. With a relational database, much like a spreadsheet, there are rows and columns that store data and make for easy search. Relational databases can have multiple tables, much like multiple spreadsheets, linked together. This allows a user to search across tables, linking information and pulling out very specific data.

In recent years, however, new types of storage formats have become popular. Often referred to as NoSQL databases, these types of databases rely on a variety of methods to store and retrieve data, including key-value stores, graph databases, document storage, multivalue and multimodel debases.

NoSQL databases have a number of advantages over traditional relational databases. Generally, NoSQL databases scale better horizontally, being deployed across different servers.

Another significant advantage is the ability of NoSQL databases to handle unstructured data. Standard relational databases rely on very structured data types and fields. This makes them less than ideal in circumstances where the data is unstructured or of unknown types.

Because of this, NoSQL databases tend to be more adaptable to changing needs, since their structure and data types are not as rigid as relational databases.

Redis is one of the more popular varieties of NoSQL databases. As they describe themselves:

“Redis is an open source (BSD licensed), in-memory data structure store, used as a 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.

“Redis creates a new category in the database world. It combines the best of in-memory, schema-less design with optimized data structures and versatile modules that adapt to your data needs. The result is the most adept, high performance, multi-purpose database that scales easily like a simple key/value data store but delivers sophisticated functionality with great simplicity.

“In addition to being fully in-memory, Redis enables data persistence and high availability through replication and backups.”

Given Redis’ origins, performance and scalability are built-in to the product from the ground up. Redis was the brainchild of Salvatore Sanfilippo. He created it in an effort to improve the scalability of the web log analyzer his startup was working on.

Given the popularity of Redis, consistently ranking as the most popular key-value database, any new product or development by Redis Labs is sure to gain attention.

RedisRaft

Redis has announced a new module called RedisRaft. Began as an experimental “side project,” the goal was to improve deployment consistency for Redis. As a result, RedisRaft “makes it possible to operate a number of Redis servers as a single fault-tolerant, strongly consistent cluster,” writes Yossi Gottlieb. “As its name suggests, it is based on the Raft consensus algorithm and an open-source C library that implements it.”

One of the design principles of Raft is “a strong-leader concept, which means all client operations should go to the leader node and initiate from it.”

As a result, with a little work, applications can be rewritten to find and then connect to the leader node. The method will result in the fastest performance, with the lowest latency.

For apps where a bit of latency can be tolerated, it’s possible to turn on a feature that will automatically handle the upgrade, at the expense of a little higher latency.

“But what if we don’t want to modify our existing application? Luckily, RedisRaft can also be configured to automatically handle this for us,” continues Gottlieb. “By enabling follower proxy mode, we can have cluster nodes automatically forward our request to the leader and provide the reply when it is available.”

Once implemented, Raft is completely seamless. The module takes over all communication between cluster nodes, handles all log and snapshot replication, persistence and more.

Exciting Changes For Redis

Already one of the most popular NoSQL options on the market, Raft will likely be a big hit for companies that need to run multiple servers as a cluster. This will take an already scalable, high-performance solution and make it even better.

The current version is still under development, but the basic functionality is in place. As a result, developers should be able to get started and see what Raft can do for them.

TagsRedisRedisRaft
Matt Milano
Technical Writer
Matt is a tech journalist and writer with a background in web and software development.

Related Articles

Back
DevelopersJuly 14, 2020
Redis Labs to Launch RedisRaft that Brings a New Strong-Consistency with Strict Serialization Deployment Option to Redis
Redis Labs is developing a new module for open source Redis. RedisRaft is set to operate a number of Redis servers as a single fault-tolerant, strongly consistent cluster.

In the world of databases, Redis is somewhat unique, blending the best characteristics of a number of different approaches. Now the organization behind it, Redis Labs, has unveiled a new way to deploy and operate Redis servers.

What Is Redis?

Redis occupies a unique place in the data storage world. For decades, relational databases have been the industry standard. With a relational database, much like a spreadsheet, there are rows and columns that store data and make for easy search. Relational databases can have multiple tables, much like multiple spreadsheets, linked together. This allows a user to search across tables, linking information and pulling out very specific data.

In recent years, however, new types of storage formats have become popular. Often referred to as NoSQL databases, these types of databases rely on a variety of methods to store and retrieve data, including key-value stores, graph databases, document storage, multivalue and multimodel debases.

NoSQL databases have a number of advantages over traditional relational databases. Generally, NoSQL databases scale better horizontally, being deployed across different servers.

Another significant advantage is the ability of NoSQL databases to handle unstructured data. Standard relational databases rely on very structured data types and fields. This makes them less than ideal in circumstances where the data is unstructured or of unknown types.

Because of this, NoSQL databases tend to be more adaptable to changing needs, since their structure and data types are not as rigid as relational databases.

Redis is one of the more popular varieties of NoSQL databases. As they describe themselves:

“Redis is an open source (BSD licensed), in-memory data structure store, used as a 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.

“Redis creates a new category in the database world. It combines the best of in-memory, schema-less design with optimized data structures and versatile modules that adapt to your data needs. The result is the most adept, high performance, multi-purpose database that scales easily like a simple key/value data store but delivers sophisticated functionality with great simplicity.

“In addition to being fully in-memory, Redis enables data persistence and high availability through replication and backups.”

Given Redis’ origins, performance and scalability are built-in to the product from the ground up. Redis was the brainchild of Salvatore Sanfilippo. He created it in an effort to improve the scalability of the web log analyzer his startup was working on.

Given the popularity of Redis, consistently ranking as the most popular key-value database, any new product or development by Redis Labs is sure to gain attention.

RedisRaft

Redis has announced a new module called RedisRaft. Began as an experimental “side project,” the goal was to improve deployment consistency for Redis. As a result, RedisRaft “makes it possible to operate a number of Redis servers as a single fault-tolerant, strongly consistent cluster,” writes Yossi Gottlieb. “As its name suggests, it is based on the Raft consensus algorithm and an open-source C library that implements it.”

One of the design principles of Raft is “a strong-leader concept, which means all client operations should go to the leader node and initiate from it.”

As a result, with a little work, applications can be rewritten to find and then connect to the leader node. The method will result in the fastest performance, with the lowest latency.

For apps where a bit of latency can be tolerated, it’s possible to turn on a feature that will automatically handle the upgrade, at the expense of a little higher latency.

“But what if we don’t want to modify our existing application? Luckily, RedisRaft can also be configured to automatically handle this for us,” continues Gottlieb. “By enabling follower proxy mode, we can have cluster nodes automatically forward our request to the leader and provide the reply when it is available.”

Once implemented, Raft is completely seamless. The module takes over all communication between cluster nodes, handles all log and snapshot replication, persistence and more.

Exciting Changes For Redis

Already one of the most popular NoSQL options on the market, Raft will likely be a big hit for companies that need to run multiple servers as a cluster. This will take an already scalable, high-performance solution and make it even better.

The current version is still under development, but the basic functionality is in place. As a result, developers should be able to get started and see what Raft can do for them.

Redis
RedisRaft
About the author
Matt Milano -Technical Writer
Matt is a tech journalist and writer with a background in web and software development.

Related Articles