Ad

redis-cluster-proxy: Redis Cluster Proxy

This project provides a proxy for Redis clusters, abstracting cluster complexity and enabling clients to interact with the cluster as a single instance.
Screenshot of RedisLabs/redis-cluster-proxy homepage

Redis Cluster Proxy acts as an intermediary between clients and a Redis Cluster. It enables clients to interact with a cluster of Redis instances as if it were a single Redis instance. This simplifies client interactions by abstracting away the complexities of cluster management and routing. The core approach utilizes a multi-threaded architecture with multiplexing and private connection models to optimize performance and client experience.

Key features include automatic routing, support for both multiplexing and private connections, guaranteed query execution order, automatic cluster configuration updates upon ASK|MOVED errors, and cross-slot/cross-node query support. The design prioritizes a transparent experience for clients, minimizing disruption during cluster topology changes. The use of pre-connected private connection pools improves performance for commands requiring persistent connections.

  • Routing: Automatically routes queries to the appropriate Redis node in the cluster.
  • Multithreaded: Supports multiple concurrent client connections.
  • Multiplexing & Private Connections: Handles both connection models for optimized performance.
  • Cluster Configuration Updates: Automatically updates proxy state after ASK|MOVED errors.
  • Cross-slot/Cross-node Queries: Supports commands involving multiple keys across the cluster.
  • Connection Pools: Maintains connection pools for private connections to minimize connection overhead.
  • Configuration Options: Allows for binding to specific interfaces, controlling port, and adjusting thread counts.

The project is currently in an alpha state and not actively maintained. It is designed for community evaluation and contributions. While functional, usage in production environments is discouraged. Recent activity is limited to infrequent commits, and comprehensive documentation is still developing. The project's core concepts are well-defined, but further refinement and stability testing are required.

Redis Cluster Proxy benefits developers by simplifying Redis Cluster client interactions and providing advanced features such as automatic cluster configuration updates. It is most useful for applications requiring a seamless Redis Cluster experience without needing to manage connection complexities. The proxy provides value by reducing client code complexity, enhancing resilience through automatic cluster updates, and potentially improving performance via connection pooling.

Summarize:
Share:
Stars
1,057
Forks
137
Issues
71
Created
7 years ago
Commit
2 years ago
License
AGPL-3.0
Archived
No
Updated 15 days ago

Similar Repositories