xcodis

module
v0.0.0-...-b131dfc Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2015 License: MIT

README

xcodis

Yet another redis proxy based on codis

Please read codis document first. here

Install

  • Install Go and set your GOPATH
  • Install godep go get github.com/tools/godep
  • go get github.com/siddontang/xcodis, it will print some messages in console, skip it. :-)
  • cd $GOPATH/src/github.com/siddontang/xcodis
  • make

Why xcodis?

  • Supports LedisDB.
  • Supports origin Redis, codis uses a modified version.

Changes from codis

  • Uses db index to represent slot concept in codis.
  • Uses server + db as the connection pool key.
  • slot_num in config must equal redis/ledisdb databases. 16 is the default for redis and ledisdb, if you want to use larger one, you must first change redis/ledisdb databases in config.
  • Uses scan + migrate in redis for slot migration.
  • Uses xmigrate + xmigratedb in ledisdb for slot migration.
  • Removes dashboard.
  • Removes slot rebalance feature.
  • Must set a broker in config.ini, broker is ledisdb or redis.
  • Uses a white command list for ledisdb.
  • Not support atomic tag migration.
  • Not support lua for ledisdb.

Todo

  • Tidy up some ugly codes I added. >_<

Thanks

Thanks Wandoujia, codis is a very awesome application.

Feedback

Directories

Path Synopsis
Godeps
_workspace/src/code.google.com/p/goprotobuf/proto
Package proto converts data structures to and from the wire format of protocol buffers.
Package proto converts data structures to and from the wire format of protocol buffers.
_workspace/src/github.com/alicebob/miniredis
Package miniredis is a pure Go Redis test server, for use in Go unittests.
Package miniredis is a pure Go Redis test server, for use in Go unittests.
_workspace/src/github.com/boltdb/bolt
Package bolt implements a low-level key/value store in pure Go.
Package bolt implements a low-level key/value store in pure Go.
_workspace/src/github.com/docopt/docopt-go
Package docopt parses command-line arguments based on a help message.
Package docopt parses command-line arguments based on a help message.
_workspace/src/github.com/garyburd/redigo/internal/redistest
Package redistest contains utilities for writing Redigo tests.
Package redistest contains utilities for writing Redigo tests.
_workspace/src/github.com/garyburd/redigo/redis
Package redis is a client for the Redis database.
Package redis is a client for the Redis database.
_workspace/src/github.com/go-cloud/zkhelper
Package fakezk is a pretty complete mock implementation of a Zookeper connection (see go/zk/zk.Conn).
Package fakezk is a pretty complete mock implementation of a Zookeper connection (see go/zk/zk.Conn).
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/hashicorp/go-msgpack/codec
High Performance, Feature-Rich Idiomatic Go encoding library for msgpack and binc .
High Performance, Feature-Rich Idiomatic Go encoding library for msgpack and binc .
_workspace/src/github.com/juju/errors
[godoc-link-here] The juju/errors provides an easy way to annotate errors without losing the orginal error context.
[godoc-link-here] The juju/errors provides an easy way to annotate errors without losing the orginal error context.
_workspace/src/github.com/matttproud/golang_protobuf_extensions/ext
Package ext enables record length-delimited Protocol Buffer streaming.
Package ext enables record length-delimited Protocol Buffer streaming.
_workspace/src/github.com/ngaut/gostats
Package stats is a wrapper for expvar.
Package stats is a wrapper for expvar.
_workspace/src/github.com/ngaut/logging
high level log wrapper, so it can output different log based on level
high level log wrapper, so it can output different log based on level
_workspace/src/github.com/ngaut/pools
Package pools provides functionality to manage and reuse resources like connections.
Package pools provides functionality to manage and reuse resources like connections.
RESP decoder.
_workspace/src/github.com/ngaut/zkhelper
Package fakezk is a pretty complete mock implementation of a Zookeper connection (see go/zk/zk.Conn).
Package fakezk is a pretty complete mock implementation of a Zookeper connection (see go/zk/zk.Conn).
_workspace/src/github.com/nu7hatch/gouuid
This package provides immutable UUID structs and the functions NewV3, NewV4, NewV5 and Parse() for generating versions 3, 4 and 5 UUIDs as specified in RFC 4122.
This package provides immutable UUID structs and the functions NewV3, NewV4, NewV5 and Parse() for generating versions 3, 4 and 5 UUIDs as specified in RFC 4122.
HTTP Content-Type Autonegotiation.
_workspace/src/github.com/prometheus/client_golang/_vendor/perks/quantile
Package quantile computes approximate quantiles over an unbounded data stream within low memory and CPU bounds.
Package quantile computes approximate quantiles over an unbounded data stream within low memory and CPU bounds.
_workspace/src/github.com/prometheus/client_golang/model
Package model contains core representation of Prometheus client primitives.
Package model contains core representation of Prometheus client primitives.
_workspace/src/github.com/prometheus/client_golang/prometheus
Package prometheus provides embeddable metric primitives for servers and standardized exposition of telemetry through a web services interface.
Package prometheus provides embeddable metric primitives for servers and standardized exposition of telemetry through a web services interface.
_workspace/src/github.com/prometheus/client_golang/text
Package text contains helper functions to parse and create text-based exchange formats.
Package text contains helper functions to parse and create text-based exchange formats.
_workspace/src/github.com/prometheus/client_model/go
Package io_prometheus_client is a generated protocol buffer package.
Package io_prometheus_client is a generated protocol buffer package.
_workspace/src/github.com/prometheus/procfs
Package procfs provides functions to retrieve system, kernel and process metrics from the pseudo-filesystem proc.
Package procfs provides functions to retrieve system, kernel and process metrics from the pseudo-filesystem proc.
_workspace/src/github.com/siddontang/go/log
log package supplies more advanced features than go orign log package.
log package supplies more advanced features than go orign log package.
cmd
ha
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