awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
luin avatar

luin/ioredis

0
View on GitHub↗
15,295 stars·1,228 forks·TypeScript·MIT·13 views

Ioredis

ioredis is a performance-focused Redis client for Node.js designed to execute commands and manage data connections. It provides a specialized interface for interacting with standalone servers, sharded clusters, and high-availability setups.

The library distinguishes itself with native support for Redis Cluster, featuring automatic slot discovery and network address mapping, and Redis Sentinel for master node discovery and automatic failover. It also includes a dedicated Lua scripting interface that utilizes server-side caching to ensure atomic operations.

The project covers a broad set of capabilities including real-time message pub/sub, atomic transactions, and binary data handling via buffers. It optimizes throughput using automated command pipelining and batching, while offering reliability through offline command queuing and automatic connection retries. Additional utility is provided through key prefixing for namespace organization and access control list integration for user permissions.

Features

  • Redis Clients - Provides a performance-focused Node.js client for executing commands and managing connections to Redis servers.
  • Node.js Database Integration - Serves as a high-performance Redis client library specifically designed for the Node.js runtime environment.
  • Command Pipelining - Optimizes throughput by grouping multiple commands into single network requests to minimize TCP overhead.
  • Redis - Provides secure connections to Redis servers using connection options and encrypted URLs.
  • Database Command Interfaces - Provides a comprehensive API for executing raw and structured Redis commands against the server.
  • Topology Configurations - Supports diverse connection configurations including standalone, cluster, and sentinel setups with encryption.
  • Cluster Connectivity - Manages sharded data across multiple nodes using automatic slot discovery and redirection.
  • Sentinel Management - Integrates with Redis Sentinel to monitor master nodes and automate failover recovery.
  • Slot-Based Routing - Maps keys to specific server nodes using CRC16 hashing and slot tables for distributed data access.
  • Data Throughput Optimizers - Increases speed by queuing multiple commands in memory and sending them in a single network round trip.
  • Command Pipelining - Optimizes throughput by grouping commands issued in a single event loop tick into one network request.
  • Asynchronous Promise Interfaces - Wraps asynchronous network requests in promises to manage command lifecycles, timeouts, and errors.
  • Lua Scripting - Implements server-side Lua script execution with SHA1 caching to ensure atomicity and reduce network traffic.
  • Command Buffering - Stores commands issued before a connection is active in a queue for execution upon server availability.
  • Redis Stream Processors - Provides utilities for iterating through keys and sets using readable streams to handle large datasets without blocking.
  • Atomic Transactions - Groups multiple commands into a single unit to ensure all operations succeed or fail together.
  • Read and Write Splitting - Routes write queries to master nodes and distributes read queries across available nodes to scale performance.
  • Network Address Mapping - Translates internal cluster IP addresses to accessible external addresses using network mapping rules.
  • PubSub Interfaces - Implements an event-driven interface for real-time message distribution across Redis channels.
  • Server-Side Scripting - Executes logic-bearing Lua scripts directly on the Redis server and caches their hashes for performance.
  • Connectivity Verifiers - Queues commands during outages and verifies connectivity before executing pending requests.
  • Offline Buffering - Buffers outgoing requests in memory during network outages and flushes them upon reconnection.
  • Pub-Sub Messaging - Utilizes a publish-subscribe architecture to synchronize real-time data across multiple active clients.
  • PubSub Messaging Systems - Provides an event-driven interface for implementing real-time communication via Redis pub/sub channels.
  • Binary Buffer Transports - Implements raw Node.js buffer transport to eliminate string encoding overhead and prevent data corruption during transmission.
  • Access Control - Restricts database operations based on user permissions by authenticating requests against access control lists.
  • Event-Loop Pipelining - Groups multiple commands issued during a single tick into one network request to reduce TCP overhead.
  • Retry Strategies - Reconnects automatically after network loss using custom retry strategies and channel resubscription.
  • Database Drivers - Redis client implementation.
  • Databases - Robust Redis client.
  • Data and Storage Libraries - Robust Redis client for Node.js.

Star history

Star history chart for luin/ioredisStar history chart for luin/ioredis

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Ioredis

Similar open-source projects, ranked by how many features they share with Ioredis.
  • redis/ioredisredis avatar

    redis/ioredis

    15,295View on GitHub↗

    ioredis is a performance-focused Redis client for Node.js applications. It provides a comprehensive interface for interacting with Redis servers, including specialized clients for sharded clusters and Sentinel-based high availability environments. The project distinguishes itself through advanced networking and execution capabilities, such as automatic event-loop pipelining to reduce overhead and a system for routing read-write traffic between primary and replica nodes. It also features a dedicated Lua scripting interface that allows server-side scripts to be registered as custom client comma

    TypeScriptnodejsredisredis-client
    View on GitHub↗15,295
  • phpredis/phpredisphpredis avatar

    phpredis/phpredis

    10,219View on GitHub↗

    phpredis is a C-based native extension that bridges PHP applications with Redis servers for high-performance data storage and retrieval. It serves as an interface for manipulating strings, hashes, lists, sets, and sorted sets while providing a direct path for executing Redis commands and server-side scripts. The extension provides comprehensive support for distributed environments and high availability. It interfaces with Redis Cluster to distribute data across multiple nodes using hash slots and manages Redis Sentinel for service discovery and automatic failover. It also enables shared state

    Cclusterkeydbphp
    View on GitHub↗10,219
  • redis/rueidisredis avatar

    redis/rueidis

    2,899View on GitHub↗

    Rueidis is a high-performance Redis client library for Go that provides a type-safe and asynchronous interface for interacting with Redis servers. It includes a full implementation of the Redis serialization protocol and a dedicated connection manager to handle pooling, multiplexing, and automatic pipelining. The library is distinguished by its support for RDMA connectivity to reduce latency and CPU overhead. It features a distributed lock manager that implements majority-based locking and optimistic concurrency control, as well as client-side caching with invalidation signals to minimize net

    Gocacheclient-side-cachingdistributed
    View on GitHub↗2,899
  • redis/redis-pyredis avatar

    redis/redis-py

    13,566View on GitHub↗

    redis-py is a Python client library for interacting with Redis databases to execute commands and manage key-value data. It serves as a driver for programmatic data manipulation, providing interfaces for Redis command execution and key-value storage. The project includes a dedicated cluster client that handles topology discovery, slot mapping, and request routing across distributed nodes. It further supports high availability through active-active deployment coordination, utilizing health checks and failure detection to trigger automatic failover between instances. The library incorporates ne

    Pythonpythonredisredis-client
    View on GitHub↗13,566
See all 30 alternatives to Ioredis→

Frequently asked questions

What does luin/ioredis do?

ioredis is a performance-focused Redis client for Node.js designed to execute commands and manage data connections. It provides a specialized interface for interacting with standalone servers, sharded clusters, and high-availability setups.

What are the main features of luin/ioredis?

The main features of luin/ioredis are: Redis Clients, Node.js Database Integration, Command Pipelining, Redis, Database Command Interfaces, Topology Configurations, Cluster Connectivity, Sentinel Management.

What are some open-source alternatives to luin/ioredis?

Open-source alternatives to luin/ioredis include: redis/ioredis — ioredis is a performance-focused Redis client for Node.js applications. It provides a comprehensive interface for… phpredis/phpredis — phpredis is a C-based native extension that bridges PHP applications with Redis servers for high-performance data… redis/rueidis — Rueidis is a high-performance Redis client library for Go that provides a type-safe and asynchronous interface for… redis/redis-py — redis-py is a Python client library for interacting with Redis databases to execute commands and manage key-value… redis/go-redis — This project is a feature-rich Go client library designed for interacting with Redis. It serves as a comprehensive… redisson/redisson — Redisson is a Java library and Redis client that functions as a distributed Java object mapper, caching provider, and…