What is twemproxy?
twemproxy (pronounced "two-em-proxy"), aka nutcracker is a fast and lightweight proxy for memcached and redis protocol. It was built primarily to reduce the number of connections to the caching servers on the backend. This, together with protocol pipelining and sharding enables you to horizontally scale your distributed caching architecture.
twemproxy is a tool in the Memcached Tools category of a tech stack.
twemproxy is an open source tool with 12.2K GitHub stars and 2.1K GitHub forks. Here’s a link to twemproxy's open source repository on GitHub
Who uses twemproxy?
Companies
3 companies reportedly use twemproxy in their tech stacks, including Twitter, trivago, and Avito.
Developers
11 developers on StackShare have stated that they use twemproxy.
Pros of twemproxy
4
twemproxy's Features
- Fast.
- Lightweight.
- Maintains persistent server connections.
- Keeps connection count on the backend caching servers low.
- Enables pipelining of requests and responses.
- Supports proxying to multiple servers.
- Supports multiple server pools simultaneously.
- Shard data automatically across multiple servers.
- Implements the complete memcached ascii and redis protocol.
- Easy configuration of server pools through a YAML file.
- Supports multiple hashing modes including consistent hashing and distribution.
- Can be configured to disable nodes on failures.
- Observability via stats exposed on the stats monitoring port.
- Works with Linux, *BSD, OS X and SmartOS (Solaris)
twemproxy Alternatives & Comparisons
What are some alternatives to twemproxy?
HAProxy
HAProxy (High Availability Proxy) is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
McRouter
Mcrouter is a memcached protocol router for scaling memcached deployments. It's a core component of cache infrastructure at Facebook and Instagram where mcrouter handles almost 5 billion requests per second at peak.
Redis
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.
Dynomite
Dynomite is a generic dynamo implementation that can be used with many different key-value pair storage engines. Currently these include Redis and Memcached. Dynomite supports multi-datacenter replication and is designed for high availability.
MySQL
The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
Related Comparisons