Redis Software uses a default limit of 10,000 concurrent client connections per shard process. This limit is controlled by the maxclients parameter and applies at the Redis shard level, not at the proxy layer. By default, the Redis Enterprise proxy does not enforce its own connection cap unless max_connections is explicitly configured.
This article explains how connection limits work in Redis Software, clarifies common confusion around the 10K limit, explains how OSS cluster mode interacts with the proxy, and provides supported steps to increase shard or endpoint limits using rladmin tune db.
Note that connections between the proxy and shards are typically short-lived (except for specific workloads such as pub/sub), even when client applications maintain persistent connections to the database endpoint.
How Connection Limits Work in Redis Software
Shard-Level Limit (maxclients)
Default: 10,000
Applies per shard (Redis process)
Enforced inside each shard
When reached, clients receive:
ERR max number of clients reachedThis is the source of the commonly referenced “10K limit.”
According to the Redis Software rladmin tune db reference, maxclients controls the maximum client connections between the proxy and shards, with a default of 10000. Read more here
Proxy-Level Limit (max_connections)
Applies to client connections to the database endpoint
Enforced by the Redis Enterprise proxy
Default: 0 (unlimited)
By default, the proxy does not enforce a 10,000 connection limit.
The official rladmin tune db documentation defines max_connections as the maximum client connections to the database endpoint, with a default of 0 (unlimited). Read more here
Important Clarification: OSS Cluster Mode in Redis Software
Even when applications use OSS cluster mode and cluster-aware clients:
Clients still connect to the Redis Enterprise proxy.
The proxy routes traffic to the appropriate shard.
The shard
maxclientslimit still applies per shard.
Switching from proxy-based routing to OSS cluster mode does not remove the proxy from the connection path. All client traffic in Redis Software flows through the proxy layer.
However, in OSS cluster mode:
Each application process may open connections to multiple shards.
Total shard-level connections can multiply quickly.
The oss_cluster setting itself is managed at the database level and is tunable via rladmin tune db, as documented in the same reference. Read more here
How to Increase Connection Limits (Supported Method)
Connection limits must be modified using rladmin tune db. Directly editing shard configuration files is not supported and may be overwritten during upgrades.
Official reference here.
Increase Shard-Level maxclients
rladmin tune db db:<ID> maxclients <N>Example:
rladmin tune db db:1 maxclients 20000Notes:
Applies to all shards in the database.
Should only be increased after validating OS file descriptor limits.
Raising too aggressively without FD headroom can cause instability.
Increase Proxy-Level max_connections
rladmin tune db db:<ID> max-connections <N>Example:
rladmin tune db db:1 max-connections 20000Notes:
Enforced per endpoint.
If using
all-nodesproxy policy, each endpoint enforces its own limit.Default
0means unlimited.
Do Not Modify redis-base.conf Directly
It's technically possible to modify shard configuration files under the default path:
/opt/redislabs/config/redis/Note that this location may vary if Redis Software was installed using a custom directory, so the shard configuration files might be located elsewhere depending on your environment.
However:
Changes will be overwritten during upgrades, shard migrations, and other events.
This is not the supported configuration method.
Use
rladmin tune dbinstead.
Before Increasing Limits
Evaluate the following:
Connection behavior
Are applications using connection pooling?
Are connections long-lived and intentional?
Are idle connections accumulating?
-
Does the client use heavy pub-sub traffic
Note that each pub/sub connection results in a dedicated connection between the proxy and shard. This will exhaust limits significantly faster than other types of traffic.
OS file descriptor limits
Ensure
ulimit -nsupports the new value.Redis requires headroom beyond
maxclients.
Workload pattern
Pub/Sub workloads can significantly increase shard-level connections.
OSS cluster mode can multiply connection counts across shards.
Increase limits only after validating application behavior and infrastructure capacity.
Troubleshooting
ERR max number of clients reached
Check:
-
Shard
maxclientsrladmin info db db:<ID> Proxy max_connections
OS file descriptor usage
Application connection behavior
If shard maxclients is reached and workload is legitimate, increase via:
rladmin tune db db:<ID> maxclients <N>
0 comments
Please sign in to leave a comment.