StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. In-Memory Databases
  4. In Memory Databases
  5. Redis vs ZeroMQ

Redis vs ZeroMQ

OverviewComparisonAlternatives

Overview

Redis
Redis
Stacks61.9K
Followers46.5K
Votes3.9K
GitHub Stars42
Forks6
ZeroMQ
ZeroMQ
Stacks258
Followers586
Votes71
GitHub Stars10.6K
Forks2.5K

Redis vs ZeroMQ: What are the differences?

Introduction

Redis and ZeroMQ are two popular technologies used in distributed systems and messaging architectures. While both aim to facilitate communication between different components, they differ in several important aspects. In this comparison, we will discuss the key differences between Redis and ZeroMQ.

  1. Message Queuing vs. In-Memory Data Store: The fundamental difference between Redis and ZeroMQ lies in the purpose they serve. Redis is an in-memory data store that provides key-value storage and advanced data structures. It allows fast read and write operations and can persist data on disk. On the other hand, ZeroMQ is a message queuing system that focuses on reliable and efficient message passing between different processes or nodes.

  2. Data Persistence: Redis provides the ability to persist data on disk, making it suitable for use cases where data durability is crucial. It supports various persistence options, including snapshots, append-only files, and a combination of both. ZeroMQ, on the other hand, does not provide built-in data persistence. It mainly focuses on message delivery rather than data storage.

  3. Publish-Subscribe Pattern: Redis supports the publish-subscribe messaging pattern, allowing clients to subscribe to specific channels and receive messages published by other clients. It provides a powerful mechanism for building real-time applications. While ZeroMQ can also be used for pub-sub messaging, it does not have the advanced features and flexibility offered by Redis in this regard.

  4. Concurrency and Scalability: Redis is designed to handle high-concurrency scenarios with ease. It provides thread-safe operations and supports different concurrency models, such as single-threaded, multi-threaded, and cluster modes. ZeroMQ, on the other hand, focuses on lightweight messaging and is designed to be highly scalable. It relies on a socket-based communication model and allows the use of multiple threads or processes to scale up the messaging infrastructure.

  5. Language Bindings and Ecosystem: Redis has a rich ecosystem and supports various programming languages through official and community-driven client libraries. It also offers additional features like Lua scripting, transactions, and secondary indexes. ZeroMQ provides language bindings for many popular programming languages and offers a lightweight messaging framework without unnecessary features.

  6. Transport Protocols: ZeroMQ supports various transport protocols, such as TCP, UDP, IPC, and in-process. It allows developers to choose the most suitable protocol based on their specific requirements. Redis, on the other hand, primarily relies on the TCP/IP protocol for communication between clients and servers.

In summary, Redis is an in-memory data store with advanced data structures and supports persistence, while ZeroMQ is a lightweight messaging system focused on efficient message queuing. Redis provides powerful features for pub-sub messaging, high-concurrency scenarios, and a rich ecosystem with language bindings. ZeroMQ, on the other hand, offers flexibility in choosing transport protocols and is designed for lightweight messaging without the need for data storage.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Detailed Comparison

Redis
Redis
ZeroMQ
ZeroMQ

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.

The 0MQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. 0MQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.

-
Connect your code in any language, on any platform.;Carries messages across inproc, IPC, TCP, TPIC, multicast.;Smart patterns like pub-sub, push-pull, and router-dealer.;High-speed asynchronous I/O engines, in a tiny library.;Backed by a large and active open source community.;Supports every modern language and platform.;Build any architecture: centralized, distributed, small, or large.;Free software with full commercial support.
Statistics
GitHub Stars
42
GitHub Stars
10.6K
GitHub Forks
6
GitHub Forks
2.5K
Stacks
61.9K
Stacks
258
Followers
46.5K
Followers
586
Votes
3.9K
Votes
71
Pros & Cons
Pros
  • 888
    Performance
  • 542
    Super fast
  • 514
    Ease of use
  • 444
    In-memory cache
  • 324
    Advanced key-value cache
Cons
  • 15
    Cannot query objects directly
  • 3
    No secondary indexes for non-numeric data types
  • 1
    No WAL
Pros
  • 23
    Fast
  • 20
    Lightweight
  • 11
    Transport agnostic
  • 7
    No broker required
  • 4
    Low latency
Cons
  • 5
    No message durability
  • 3
    Not a very reliable system - message delivery wise
  • 1
    M x N problem with M producers and N consumers

What are some alternatives to Redis, ZeroMQ?

Kafka

Kafka

Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.

RabbitMQ

RabbitMQ

RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.

Celery

Celery

Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.

Amazon SQS

Amazon SQS

Transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available. With SQS, you can offload the administrative burden of operating and scaling a highly available messaging cluster, while paying a low price for only what you use.

NSQ

NSQ

NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day. It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee. See features & guarantees.

ActiveMQ

ActiveMQ

Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License.

Apache NiFi

Apache NiFi

An easy to use, powerful, and reliable system to process and distribute data. It supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic.

Hazelcast

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.

Aerospike

Aerospike

Aerospike is an open-source, modern database built from the ground up to push the limits of flash storage, processors and networks. It was designed to operate with predictable low latency at high throughput with uncompromising reliability – both high availability and ACID guarantees.

Gearman

Gearman

Gearman allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase