Redis Cache Cluster Solutions: Dynomite, Twemproxy, and Codis
Due to the memory limits of single Redis servers, many companies adopt proxy‑based Redis clustering solutions such as Netflix’s Dynomite, Twitter’s Twemproxy, and the open‑source Codis from Wandoujia, which provide distributed caching, cross‑data‑center replication, and improved performance and availability.
Because a single Redis server has limited memory management capacity and excessive memory usage degrades performance, many organizations adopt proxy‑based Redis clustering solutions to improve cache performance and availability; this article summarizes the approaches taken by Netflix, Twitter, and the Chinese company Wandoujia.
1. Netflix’s Open‑Source Dynamo Implementation Dynomite
Dynomite is Netflix’s open‑source, C/C++‑implemented proxy that turns Redis and Memcached into a distributed database, also supporting persistent back‑ends such as MySQL, BerkeleyDB, and LevelDB, and offering simple, efficient, cross‑data‑center replication under the Apache License 2.0.
2. Twitter’s Redis/Memcached Proxy Service Twemproxy
Twemproxy, written in C, is a lightweight Redis proxy that consolidates multiple Redis or Memcached instances behind a single endpoint; it automatically removes failed nodes and re‑adds them when they recover, incurring at most about 20 % performance overhead compared with direct Redis access, and is released under the Apache License 2.0.
3. Wandoujia’s Redis Cluster Solution Codis
Codis, developed by Wandoujia using Go and C, is a proxy‑based Redis clustering solution fully compatible with Twemproxy; it handles request forwarding, online data migration, and presents a single logical Redis service to clients, and is distributed under the MIT License.
Other companies such as Sina, Baidu, Taobao, and Tencent have internal, non‑open‑source Redis cluster solutions; until Redis’s official production‑grade clustering is released, the three solutions above are worth considering for production use.
Art of Distributed System Architecture Design
Introductions to large-scale distributed system architectures; insights and knowledge sharing on large-scale internet system architecture; front-end web architecture overviews; practical tips and experiences with PHP, JavaScript, Erlang, C/C++ and other languages in large-scale internet system development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.