Need advice about which tool to choose?Ask the StackShare community!

Redis

58.2K
44.8K
+ 1
3.9K
Tarantool

32
46
+ 1
9
Add tool

Redis vs Tarantool: What are the differences?

Introduction

Redis and Tarantool are both in-memory data storage systems that are widely used in web applications. While they share some similarities, they also have distinct differences that make them suitable for different use cases. Below, we highlight the key differences between Redis and Tarantool.

  1. Data Model: Redis is a key-value store, where data is stored as simple key-value pairs. It supports a wide range of data structures, such as strings, lists, sets, and hashes, providing flexibility in data manipulation. On the other hand, Tarantool is a NoSQL database that supports multiple data models, including key-value, document, and relational. This allows Tarantool to handle complex data structures and relationships more efficiently.

  2. Replication: Redis supports single-master, multiple-slave replication, where data is asynchronously replicated from the primary server to the secondary servers. This provides high availability but might have some data loss in case of failures. In contrast, Tarantool has synchronous master-slave replication, ensuring that all writes are replicated to the replicas before they are considered successful. This guarantees data consistency but might introduce some latency.

  3. Programming Languages: Redis supports various client libraries, making it compatible with a wide range of programming languages, including but not limited to Python, Java, Ruby, and Node.js. Tarantool, on the other hand, has its own programming language called Lua, which is used to manipulate and query data. While it also provides support for other languages like Python and C++, it is primarily designed to work with Lua.

  4. Durability: Redis does not guarantee durability by default since it primarily stores data in memory. However, it provides options to persist data on disk through logging or snapshots. Tarantool, on the other hand, ensures durability by writing all the changes to disk before considering them committed. This makes it suitable for applications where data persistence is critical.

  5. Concurrency Control: Redis supports single-threaded execution and relies on multiple isolated instances and replication for concurrency. On the other hand, Tarantool is a multi-threaded system that supports concurrent execution of transactions and provides built-in ACID (Atomicity, Consistency, Isolation, Durability) guarantees. This makes Tarantool better suited for applications with high concurrency and strong consistency requirements.

  6. Store Procedures and Triggers: Tarantool supports stored procedures and triggers, allowing developers to define and execute custom scripts directly on the server-side. This provides more flexibility in data manipulation and allows for complex business logic to be executed within the database itself. Redis, on the other hand, does not have built-in support for stored procedures and triggers, relying on client-side logic for data manipulation.

In Summary, Redis is a flexible key-value store with support for various data structures and programming languages, while Tarantool is a versatile NoSQL database with advanced features like multiple data models, synchronous replication, and stored procedures. The choice between Redis and Tarantool depends on the specific requirements of the application in terms of data complexity, data persistence, concurrency, and business logic execution.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Redis
Pros of Tarantool
  • 886
    Performance
  • 542
    Super fast
  • 513
    Ease of use
  • 444
    In-memory cache
  • 324
    Advanced key-value cache
  • 194
    Open source
  • 182
    Easy to deploy
  • 164
    Stable
  • 155
    Free
  • 121
    Fast
  • 42
    High-Performance
  • 40
    High Availability
  • 35
    Data Structures
  • 32
    Very Scalable
  • 24
    Replication
  • 22
    Great community
  • 22
    Pub/Sub
  • 19
    "NoSQL" key-value data store
  • 16
    Hashes
  • 13
    Sets
  • 11
    Sorted Sets
  • 10
    NoSQL
  • 10
    Lists
  • 9
    Async replication
  • 9
    BSD licensed
  • 8
    Bitmaps
  • 8
    Integrates super easy with Sidekiq for Rails background
  • 7
    Keys with a limited time-to-live
  • 7
    Open Source
  • 6
    Lua scripting
  • 6
    Strings
  • 5
    Awesomeness for Free
  • 5
    Hyperloglogs
  • 4
    Transactions
  • 4
    Outstanding performance
  • 4
    Runs server side LUA
  • 4
    LRU eviction of keys
  • 4
    Feature Rich
  • 4
    Written in ANSI C
  • 4
    Networked
  • 3
    Data structure server
  • 3
    Performance & ease of use
  • 2
    Dont save data if no subscribers are found
  • 2
    Automatic failover
  • 2
    Easy to use
  • 2
    Temporarily kept on disk
  • 2
    Scalable
  • 2
    Existing Laravel Integration
  • 2
    Channels concept
  • 2
    Object [key/value] size each 500 MB
  • 2
    Simple
  • 3
    Performance
  • 2
    Super fast
  • 2
    Open source
  • 1
    Advanced key-value cache
  • 1
    In-memory cache

Sign up to add or upvote prosMake informed product decisions

Cons of Redis
Cons of Tarantool
  • 15
    Cannot query objects directly
  • 3
    No secondary indexes for non-numeric data types
  • 1
    No WAL
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    - No public GitHub repository available -

    What is Redis?

    Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.

    What is Tarantool?

    It is designed to give you the flexibility, scalability, and performance that you want, as well as the reliability and manageability that you need in mission-critical applications

    Need advice about which tool to choose?Ask the StackShare community!

    Jobs that mention Redis and Tarantool as a desired skillset
    LaunchDarkly
    Oakland, California, United States
    What companies use Redis?
    What companies use Tarantool?
    See which teams inside your own company are using Redis or Tarantool.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Redis?
    What tools integrate with Tarantool?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    Nov 20 2019 at 3:38AM

    OneSignal

    PostgreSQLRedisRuby+8
    9
    4641
    Jun 6 2019 at 5:11PM

    AppSignal

    RedisRubyKafka+9
    15
    1644
    GitHubDockerReact+17
    40
    36276
    What are some alternatives to Redis and Tarantool?
    Memcached
    Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
    MongoDB
    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
    RabbitMQ
    RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
    Hazelcast
    With its various distributed data structures, distributed caching capabilities, elastic nature, memcache support, integration with Spring and Hibernate and more importantly with so many happy users, Hazelcast is feature-rich, enterprise-ready and developer-friendly in-memory data grid solution.
    Cassandra
    Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.
    See all alternatives