Back to results for “Async”
Redis › Connection Pooling & Client Libraries

What are the tradeoffs between using synchronous and asynchronous client libraries when connecting an application to Redis?

Advanced

Answer

Synchronous clients are generally simpler to write and reason about but can block your application's execution while waiting for a response, while asynchronous clients allow your application to continue doing other work while waiting for Redis to respond, generally offering better throughput for applications that need to handle many concurrent operations, at the cost of somewhat more complex code.
// Asynchronous usage with ioredis
const value = await redis.get('key');
// The application can process other tasks
// while this awaits the Redis response
Real-world example A high concurrency real time application chooses an asynchronous Redis client to handle thousands of simultaneous operations efficiently, accepting the added complexity of asynchronous code in exchange for significantly better throughput.

Common follow-ups: When is a synchronous client actually the better choice for simplicity?;How do asynchronous clients handle error scenarios differently than synchronous ones?