# noderedis/node-redis

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/noderedis-node-redis).**

17,554 stars · 1,956 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/NodeRedis/node-redis
- Homepage: https://redis.js.org/
- awesome-repositories: https://awesome-repositories.com/repository/noderedis-node-redis.md

## Description

node-redis is a Node.js client and database driver for interacting with Redis key-value stores. It functions as a connection manager and data iterator, allowing applications to execute database commands and manage atomic transactions on a remote server using asynchronous JavaScript.

The project provides specialized capabilities for handling large datasets through an asynchronous interface and supports connection pooling to isolate blocking operations. It includes support for client-side caching and token-based authentication via Entra ID.

The driver covers a broad range of operational areas, including network event monitoring, request pipelining, and performance instrumentation. These capabilities support distributed state management, asynchronous task queuing, and real-time data processing.

## Tags

### Data & Databases

- [Redis Drivers](https://awesome-repositories.com/f/data-databases/asynchronous-database-drivers/redis-drivers.md) — Functions as a database driver for executing Redis commands and managing atomic transactions using the Redis protocol.
- [Redis Connection Management](https://awesome-repositories.com/f/data-databases/redis-connection-management.md) — Provides a comprehensive system for connecting to Redis using connection strings, UNIX sockets, or TLS. ([source](https://github.com/noderedis/node-redis#readme))
- [Redis](https://awesome-repositories.com/f/data-databases/connection-managers/redis.md) — Implements a system for managing TLS connections, connection pooling, and network event monitoring for Redis.
- [Application Data Caches](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/caching-performance/caching/memcached/application-data-caches.md) — Facilitates application data caching to improve response times and reduce primary database load.
- [Atomic Transactions](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/atomic-transactions.md) — Supports atomic transactions to ensure multiple operations are executed as a single unit. ([source](https://github.com/noderedis/node-redis#readme))
- [Real-Time Data Streaming](https://awesome-repositories.com/f/data-databases/real-time-data-streaming.md) — Supports real-time data processing of fast-changing streams and atomic transactions for high throughput.
- [Redis Clients](https://awesome-repositories.com/f/data-databases/redis-clients.md) — Provides a high-performance Node.js library for interacting with Redis key-value stores.
- [Redis Command Execution](https://awesome-repositories.com/f/data-databases/redis-command-execution.md) — Enables the execution of database commands to manipulate and retrieve data from a remote Redis store. ([source](https://github.com/noderedis/node-redis#readme))
- [Key-Value](https://awesome-repositories.com/f/data-databases/storage-engines/key-value.md) — Provides a high-performance interface for storing and retrieving data using Redis key-value lookups.
- [Asynchronous Iterators](https://awesome-repositories.com/f/data-databases/collection-iterators/asynchronous-iterators.md) — Provides asynchronous iterators to stream large datasets from Redis without risking memory overflow.
- [Asynchronous Iterators](https://awesome-repositories.com/f/data-databases/connection-managers/redis/asynchronous-iterators.md) — Provides an asynchronous interface to process large datasets from Redis in manageable chunks.
- [Client-Side State Caches](https://awesome-repositories.com/f/data-databases/data-caching/client-side-state-caches.md) — Implements client-side caching to store query results and reduce redundant server requests. ([source](https://github.com/noderedis/node-redis#readme))
- [Connection Pool Managers](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/connection-pool-managers.md) — Manages connection pools to optimize resource utilization and isolate blocking operations. ([source](https://github.com/noderedis/node-redis#readme))

### DevOps & Infrastructure

- [Asynchronous Task Queuing](https://awesome-repositories.com/f/devops-infrastructure/infrastructure/networking/messaging-infrastructure-integrations/asynchronous-task-queuing.md) — Enables asynchronous task queuing and background job management using Redis as a message broker.

### Networking & Communication

- [TCP Socket Clients](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-protocols/connection-establishment-protocols/tcp-socket-clients.md) — Establishes direct TCP socket connections for low-latency binary communication with the Redis server.
- [Distributed State Management](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/data-synchronization-consistency/distributed-state-management.md) — Allows maintaining shared application state across multiple server instances via a central Redis store.
- [Connection Pool Isolation](https://awesome-repositories.com/f/networking-communication/connection-pool-isolation.md) — Implements separate connection pools to prevent blocking operations from stalling the main command pipeline.

### Programming Languages & Runtimes

- [Redis Protocol Parsing](https://awesome-repositories.com/f/programming-languages-runtimes/binary-parsing/network-protocol-parsing/redis-protocol-parsing.md) — Implements a state-machine based parser for the Redis Serialization Protocol (RESP) to decode binary data.

### Software Engineering & Architecture

- [Request Batching](https://awesome-repositories.com/f/software-engineering-architecture/request-batching.md) — Groups multiple commands into a single network packet to reduce round-trip overhead.

### Part of an Awesome List

- [Databases](https://awesome-repositories.com/f/awesome-lists/data/databases.md) — High-performance Redis client.
