Businesses, big and small, are gearing up to manage data at an unprecedented scale. Their challenge increases exponentially when managing data that require a permanent proof of record, especially when they arrive in great volume and at high speed.
Transactional databases, such as relational databases, are designed to assure data consistency. They are implemented with a rigid schema and strict ACID compliance, and are thus limited to moderate throughput and high latencies. NoSQL databases defy this rigidity. However, as the responsibility of data consistency moves to the application layer, developing and maintaining applications that rely on high-volume transactional data becomes more complex and expensive.
Microservices-based architectures drive some new requirements for transaction handling. When the data is shared between multiple microservices, the idea of transactions becomes a bit blurred at the solution level. Following the microservices architecture requires databases to be tunable for data consistency and durability while supporting atomicity and isolation. Redis, on the other hand, offers both tunable consistency and durability.
Redis is a high-performance, in-memory database benchmarked to deliver, using fewest resources. Redis offers the following ACID controls to support high-speed transactions:
- Atomicity: Provided with all Redis commands, with Lua Scripts and MULTI-EXEC blocks.
- Consistency: Tunable consistency through the WAIT command
- Isolation: Optimistic locking through the WATCH command
- Durability with replication and disk persistence as a protection against data loss under failures
Redise , the enterprise edition of Redis database offered by Redis Labs, supports clustering, instantaneous replication, data backup, automatic recovery, and strong data consistency, making it ideal for enterprise level, mission-critical solutions. Redise also allows you to fine tune persistence and replication in order to meet your performance and data consistency requirements.
This whitepaper outlines the Redis tools used when handling transactions, illustrates various scenarios using sample programs, and details how Redise can help you scale and increase performance with transnational workloads.