Giter Club home page Giter Club logo

redis-cerberus's Introduction

A Redis cluster proxy.

Build

Requirements:

  • UNIX-like system with SO_REUSEPORT | SO_REUSEADDR support
  • epoll support
  • pthread
  • C++ compiler & lib with C++11 features, like g++ 4.8 or clang++ 3.2
  • Google Test (for test)

To build, just

make

turn on all debug logs

make MODE=debug

or compile with g่‰น

make COMPILER=g++

To link libstdc++ statically, use

make STATIC_LINK=1

to run test (just cover message parsing parts)

make runtest

run test with valgrind checking

make runtest CHECK_MEM=1

Run

./cerberus example.conf

The argument is path of a configuration file, which should contains at least

  • bind : (integer) local port to listen
  • node : (address) one of active node in a cluster; format should be host:port
  • thread: (integer) number of threads

Commands in Particular

Restricted Commands Bypass

  • MGET : execute multiple GETs
  • MSET : execute multiple SETs
  • DEL : execute multiple DELs
  • RENAME : if source and destination are not in the same slot, execute a GET-SET-DEL sequence

Extra Commands

  • PROXY: shows proxy information, including threads count, clients counts

Not Implemented

  • keys: KEYS, MIGRATE, MOVE, OBJECT, RANDOMKEY, RENAMENX, SCAN, BITOP,
  • list: BLPOP, BRPOP, BRPOPLPUSH, RPOPLPUSH,
  • set: SINTERSTORE, SDIFFSTORE, SINTER, SMOVE, SUNIONSTORE,
  • sorted set: ZINTERSTORE, ZUNIONSTORE,
  • pub/sub: PUBSUB, PUNSUBSCRIBE, UNSUBSCRIBE,

others: PFADD, PFCOUNT, PFMERGE, EVAL, EVALSHA, SCRIPT, WATCH, UNWATCH, EXEC, DISCARD, MULTI, SELECT, QUIT, ECHO, AUTH, CLUSTER, BGREWRITEAOF, BGSAVE, CLIENT, COMMAND, CONFIG, DBSIZE, DEBUG, FLUSHALL, FLUSHDB, INFO, LASTSAVE, MONITOR, ROLE, SAVE, SHUTDOWN, SLAVEOF, SLOWLOG, SYNC, TIME,

For more information please read here (CN).

redis-cerberus's People

Contributors

zheplusplus avatar cmgs avatar

Watchers

James Cloos avatar ZhangLi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.