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

Redis

58.2K
44.8K
+ 1
3.9K
Resque

118
125
+ 1
9
Add tool

Redis vs Resque: What are the differences?

Introduction

Redis and Resque are both open-source technologies used for handling data, but they serve different purposes and have distinct features. In this Markdown document, we will discuss the key differences between Redis and Resque in terms of functionality and use cases.

1. In-Memory Database vs. Background Job Queue Redis is primarily an in-memory data structure store that can be used as a database, cache, and message broker. It is optimized for read-heavy operations and can store data in various structures like strings, lists, sets, and hashes. On the other hand, Resque is a background job queue system built on Redis, which focuses on managing background job processing. It provides a simple and efficient way to handle asynchronous tasks in web applications.

2. Data Storage vs. Job Scheduling Redis provides persistent data storage capabilities, allowing data to be stored and retrieved from memory, disk, or a combination of both. It supports different data structures and offers various data manipulation commands. In contrast, Resque is designed specifically for managing and scheduling background jobs. It provides a queuing system to process jobs asynchronously, ensuring efficient utilization of resources.

3. Real-Time Data Access vs. Background Processing Redis is commonly used for real-time data access scenarios, where high-performance read and write operations are required. It can handle massive loads and respond quickly to data queries, making it suitable for caching applications and real-time analytics. On the other hand, Resque is focused on performing background processing tasks, such as sending emails, generating reports, or any other time-consuming jobs that can be delayed without affecting immediate user interaction.

4. Pub/Sub Messaging vs. Job Dependencies Redis includes a publish/subscribe messaging system, allowing different parts of an application to communicate asynchronously. This feature enables building real-time messaging platforms, chat systems, or event-driven architectures. Resque, however, does not provide native pub/sub capabilities but focuses on handling job dependencies efficiently. It ensures that jobs are executed in the correct order and supports parallel execution when feasible.

5. Multiple Languages vs. Ruby-Specific Redis is language-agnostic and provides client libraries for various programming languages, including Python, Java, PHP, and more. This makes it versatile and accessible to developers using different technologies. In contrast, Resque is a Ruby-specific library and is tightly integrated with Ruby on Rails applications. It leverages the benefits of the Ruby ecosystem and allows seamless integration with ActiveRecord models.

6. Built-in Replication vs. Plugin-Based Scaling Redis has built-in replication capabilities, allowing data to be distributed across multiple instances for increased availability and fault tolerance. It can be configured in a master-slave or master-master setup, ensuring data redundancy. Resque, however, does not provide native scaling options and relies on external plugins or technologies like Redis Sentinel or Redis Cluster for achieving high availability and scalability.

In summary, Redis is a versatile in-memory data store with caching, storage, and messaging capabilities, while Resque is a job queue system designed for efficient background processing in Ruby on Rails applications. Redis focuses on real-time data access and offers data persistence, while Resque prioritizes job scheduling and the execution of background tasks.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Redis
Pros of Resque
  • 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
  • 5
    Free
  • 3
    Scalable
  • 1
    Easy to use on heroku

Sign up to add or upvote prosMake informed product decisions

Cons of Redis
Cons of Resque
  • 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 Resque?

    Background jobs can be any Ruby class or module that responds to perform. Your existing classes can easily be converted to background jobs or you can create new classes specifically to do work. Or, you can do both.

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

    Jobs that mention Redis and Resque as a desired skillset
    LaunchDarkly
    Oakland, California, United States
    What companies use Redis?
    What companies use Resque?
    See which teams inside your own company are using Redis or Resque.
    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 Resque?

    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
    36273
    What are some alternatives to Redis and Resque?
    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