(Source: Open source China Community Http://www.oschina.net/p/codis)
Codis is a distributed Redis solution, for upper-level applications, there is no obvious difference between connecting to Codis Proxy and connecting to native Redis Server (unsupported list of commands), and upper-level applications can be used like a single redis, Codis The bottom layer will handle the forwarding of requests, non-stop data migration, and so on, all the things behind, for the front of the client is transparent, you can simply think behind the connection is an infinite memory of the Redis service.
The Codis consists of four parts:
Codis Proxy (Codis-proxy)
Codis Manager (Codis-config)
Codis Redis (Codis-server)
ZooKeeper
Codis-proxy is a client-attached Redis proxy service, and Codis-proxy itself implements the Redis protocol, which is no different than a native Redis (like Twemproxy), where multiple codis-p can be deployed for a business Roxy, the codis-proxy itself is stateless.
Codis-config is a CODIS management tool that supports including, adding/removing REDIS nodes, adding/removing Proxy nodes, initiating data migration, and so on. The codis-config itself also has an HTTP server, which launches a dashboard that allows the user to observe the running state of the CODIS cluster directly on the browser.
Codis-server is a Redis branch maintained by the Codis project, based on 2.8.13 development, with slot support and atomic data migration directives. Codis Upper Codis-proxy and Codis-config can only interact with this version of Redis for normal operation.
Codis relies on ZooKeeper to store meta-information for data routing tables and Codis-proxy nodes, and Codis-config commands are synchronized through ZooKeeper to each surviving codis-proxy.
Codis supports differentiating between different products according to Namespace, with different product name products and no conflicting configurations.
Currently the Codis is already in a stable phase and the pea pod is already in use in the system.
Architecture:
Characteristics:
Auto Balance
Very simple to use
Graphical dashboards and management tools
Support for most Redis commands, fully compatible with Twemproxy
Support for Redis native clients
Secure and transparent data migration to easily add and remove nodes as needed
Provide command line interface
RESTful APIs
Installation:
Interface:
Dashboard
Migrate
Slots
Redis Cluster Solution Codis