Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
redis avatar

Redis Connections

  • 1.2k installs
  • 94 repo stars
  • Updated July 9, 2026
  • redis/agent-skills

redis-connections guides efficient Redis client setup: pooling, pipelining, safe iteration, client-side caching, and timeouts.

About

Redis Connections teaches client-side efficiency patterns for redis-py, Jedis, Lettuce, go-redis, and NRedisStack across five core areas. It forbids per-request TCP connections in favor of connection pools or multiplexed single connections, noting multiplexed clients cannot carry blocking commands like BLPOP. Pipelining batches independent commands into one round trip, with transactional pipelines reserved for true atomicity needs. Production guidance replaces KEYS, SMEMBERS, HGETALL, and full LRANGE with SCAN-family cursor loops and pagination. RESP3 client-side caching suits read-heavy rarely-written data such as config and feature flags, while explicit socket connect and read timeouts enable fast failure without breaking healthy traffic.

  • Pool or multiplex connections; never open TCP per request.
  • Pipeline bulk commands for one round trip instead of N serial calls.
  • Replace KEYS and full-container reads with SCAN, SSCAN, and HSCAN.
  • RESP3 client-side caching for hot read-heavy keys with invalidation.
  • Explicit connect and read timeouts with retry-on-timeout tuning guidance.

Redis Connections by the numbers

  • 1,240 all-time installs (skills.sh)
  • +133 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #79 of 911 Databases skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

redis-connections capabilities & compatibility

Capabilities
connection pool versus multiplex selection by cl · non transactional and transactional pipelining g · scan family replacement for blocking enumeration · resp3 client side caching configuration · connect and read timeout tuning with retry guida
Use cases
database · api development
From the docs

What redis-connections says it does

The single biggest mistake in Redis client code is opening a new TCP connection for every operation.
SKILL.md
Anything that walks the whole keyspace (or a whole large container) blocks the server.
SKILL.md
npx skills add https://github.com/redis/agent-skills --skill redis-connections

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.2k
repo stars94
Last updatedJuly 9, 2026
Repositoryredis/agent-skills

How do I configure a Redis client for production throughput without per-request connections or blocking server scans?

Configure efficient Redis clients with pooling or multiplexing, pipelining, SCAN-based iteration, client-side caching, and tuned socket timeouts.

Who is it for?

Backend developers configuring redis-py, Jedis, Lettuce, go-redis, or NRedisStack in latency-sensitive services.

Skip if: Skip for Redis server administration, cluster failover setup, or redis-core transaction semantics alone.

When should I use this skill?

User configures Redis clients, batches commands, iterates large keyspaces, or tunes connect and read timeouts.

What you get

Pooled or multiplexed clients, pipelined batches, SCAN-based iteration, optional RESP3 caching, and explicit timeouts.

  • Pooled client configuration
  • SCAN-based query patterns
  • Pipelining batch plan

By the numbers

  • Published as version 1.0.0 in the Redis agent-skills manifest
  • Documents four slow-command replacements in a reference table
  • Lists six manifest keywords: redis, performance, connections, pooling, pipelining, client-side-cache

Files

SKILL.mdMarkdownGitHub ↗

Redis Connections

Client-side guidance for talking to Redis efficiently: how to share connections, how to batch commands, which commands not to call in production, when to turn on client-side caching, and how to set timeouts that fail fast without breaking healthy traffic.

When to apply

  • Creating or reviewing a Redis client setup (redis-py, Jedis, Lettuce, go-redis, NRedisStack).
  • Making many small Redis calls and wondering where the latency is going.
  • Iterating large keyspaces, sets, hashes, or lists.
  • Enabling client-side caching for hot keys.
  • Tuning connect / read / write timeouts.

1. Pool or multiplex — never one connection per request

The single biggest mistake in Redis client code is opening a new TCP connection for every operation. Always either:

  • Pool — keep N persistent connections that the application leases per call (redis-py ConnectionPool, Jedis JedisPooled, go-redis client).
  • Multiplex — share a single connection across all requests (Lettuce, NRedisStack).
StyleUsed byNote
Poolredis-py, Jedis, go-redisEach lease blocks if pool exhausted; size the pool to your concurrency
MultiplexLettuce, NRedisStackSingle connection; cannot carry blocking commands like BLPOP
# redis-py — connection pool
pool = redis.ConnectionPool(host="localhost", port=6379, max_connections=50)
r = redis.Redis(connection_pool=pool)

See references/pooling.md for Python + Java + Lettuce examples.

2. Pipeline bulk work

For N commands that don't depend on each other's results, send them as a single batch with pipelining. One round-trip instead of N.

pipe = redis.pipeline()
for user_id in user_ids:
    pipe.get(f"user:{user_id}")
results = pipe.execute()

Use non-transactional pipelining for performance, and pipeline(transaction=True) only when you actually need atomicity (see redis-core's transactions guidance).

See references/pipelining.md.

3. Avoid commands that scan everything

Anything that walks the whole keyspace (or a whole large container) blocks the server. Use incremental variants instead.

Don'tUse
KEYS patternSCAN cursor loop
SMEMBERS large_setSSCAN
HGETALL large_hashHSCAN
LRANGE 0 -1 on a huge listPaginate (LRANGE 0 100)
cursor = 0
while True:
    cursor, keys = redis.scan(cursor, match="user:*", count=100)
    for key in keys:
        process(key)
    if cursor == 0:
        break

Blocking commands (`BLPOP`, `BRPOP`, `BLMOVE`) are different — they intentionally wait for data and are fine for queue consumers, but always pass a timeout, and don't issue them on a multiplexed connection (Lettuce, NRedisStack).

See references/blocking.md.

4. Client-side caching for hot keys

For data that's read often and written rarely (config, feature flags, sessions on every request), enable RESP3 client-side caching. The client keeps a local copy and the server invalidates it on writes — saving the round trip for hot reads.

client = redis.Redis(
    host="localhost",
    port=6379,
    protocol=3,                                    # RESP3 is required
    cache_config=redis.CacheConfig(max_size=1000),
)

Skip it for write-heavy workloads or data that changes constantly — the invalidation traffic overruns the savings.

See references/client-cache.md.

5. Set explicit timeouts

Defaults vary by client and may be too generous. Pick values that match the application's failure model:

r = redis.Redis(
    host="localhost",
    socket_connect_timeout=2.0,   # fail fast on dead nodes
    socket_timeout=5.0,           # tune to expected operation time
    retry_on_timeout=True,
)

Rule of thumb: connect timeout shorter than read/write timeout. Tight timeouts + retry-on-timeout for latency-sensitive paths; longer timeouts for batch jobs.

See references/timeouts.md.

References

Related skills

How it compares

Use redis-connections for client wiring and command safety; pair with Redis data-modeling skills when schema design is the primary question.

FAQ

Pool or multiplex?

Use pools for redis-py and Jedis; multiplex single connections for Lettuce and NRedisStack but not blocking commands.

KEYS or SCAN in production?

Always use SCAN cursor loops; KEYS blocks the server by scanning the entire keyspace.

When enable client-side caching?

For read-heavy rarely-written data like config or feature flags with RESP3 protocol enabled.

Databasesdatabases

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.