codis

module
v0.0.0-...-17176b1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 2, 2015 License: MIT

README

#Codis - yet another fast distributed solution for Redis

Gitter Build Status

Codis is a proxy based high performance Redis cluster solution written in Go/C, an alternative to Twemproxy.

Codis supports multiple stateless proxy with multiple redis instances.

Codis is engineered to elastically scale, Easily add or remove redis or proxy instances on-demand/dynamicly.

Codis is production-ready and is widely used by wandoujia.com.

##Features

  • Auto rebalance
  • Extremely simple to use
  • Support both redis or rocksdb transparently
  • GUI dashboard & admin tools
  • Supports most of Redis commands, Fully compatible with twemproxy(https://github.com/twitter/twemproxy)
  • Native Redis clients are supported
  • Safe and transparent data migration, Easily add or remove nodes on-demand.
  • Command-line interface is also provided
  • RESTful APIs

Build and Install

  • Install go & ZooKeeper
  • go get github.com/wandoulabs/codis
  • cd codis
  • ./bootstrap.sh
  • make gotest
  • cd sample
  • follow instructions in usage.md

Tutorial

简体中文
English

FAQ

简体中文
English (WIP)

Performance (Benchmark)

Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz

MemTotal: 16376596 kB

Twemproxy:
redis-benchmark -p 22121 -c 500 -n 5000000 -P 100 -r 10000 -t get,set

Codis:
redis-benchmark -p 19000 -c 500 -n 5000000 -P 100 -r 10000 -t get,set

Result:

main

简体中文
English (WIP)

For Java users who want to support HA

[Jodis (HA Codis Connection Pool based on Jedis)] (https://github.com/wandoulabs/codis/tree/master/extern/jodis)

Architecture

architecture

Snapshots

Dashboard main

Migrate migrate

Slots slots

Authors

Thanks:

License

Codis is licensed under MIT, see MIT-LICENSE.txt


You are welcome to use Codis in your product, and feel free to let us know~ :)

Directories

Path Synopsis
cmd
extern
redis-binlog/extern/gorocks
package gorocks provides the ability to create and access rocksdb databases.
package gorocks provides the ability to create and access rocksdb databases.
redis-binlog/extern/levigo
Package levigo provides the ability to create and access LevelDB databases.
Package levigo provides the ability to create and access LevelDB databases.
pkg
env
proxy/redispool
Package redispool exposes a single RedisConnection object with wrapped access to a single redis connection, and a ConnectionPool object to pool these RedisConnections.
Package redispool exposes a single RedisConnection object with wrapped access to a single redis connection, and a ConnectionPool object to pool these RedisConnections.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL