corvus
v0.2.7
Corvus는 클러스터 모드가 활성화 된 Redis 3.0의 빠르고 가벼운 Redis 클러스터 프록시입니다.
대부분의 Redis 클라이언트 구현은 Redis 클러스터를 지원하지 않습니다. 우리는 Python, Java, Go, Nodejs 등으로 작성된 Redis에 의존하는 많은 서비스를 보유하고 있습니다. 우리는 이전에 TwemProxy를 사용했지만 고 가용성을 위해 Sentinel에 의존하며, 서비스 중단을 유발하는 백엔드 Redis 인스턴스를 추가하거나 제거하려면 다시 시작해야합니다. TwemProxy는 단일 스레드이며 많은 수의 클라이언트를 위해 다수의 TwemProxy 인스턴스를 배포 해야하는데 SA 두통이 발생합니다.
그러므로 우리는 코르 비스를 만들었습니다.
테스트 결과의 세부 사항을 참조하십시오.
릴리스 페이지에서 다운로드 한 릴리스를 사용하는 경우
$ make
디버그 모드를 활성화하여 :
make debug
최신 출처에서 빌드하는 경우 :
git clone https://github.com/eleme/corvus.git
cd corvus
git submodule update --init
make deps # need autoconf
make 이진은 ./src/corvus 에서 찾을 수 있습니다.
예제 구성 파일은 Corvus.conf에 있습니다.
$ ./src/corvus path/to/corvus.confSET , GET , INCR ..)이 지원됩니다.MGET : 여러 GET 으로 분할.MSET : 여러 SET 로 분할.DEL : 여러 단일 키 DEL 분할.EXISTS : 여러 단일 키로 분할이 EXISTS .PING : 무시하고 전달되지 않습니다.INFO , TIME : Redis 백엔드로 전달되지 않으며 프록시에서 수집 된 정보가 반환됩니다.SLOWLOG : Corvus 자체가 저장 한 Slowlogs를 반환하십시오. Redis와 달리 Slowlog 항목에는 total latency 필드 이전에 추가 remote latency 시간이 있습니다. Slowlog는 또한 다중 키 명령에 대해 가장 느린 하위 명령을 기록합니다 : MGET , MSET , DEL 은 EXISTS . 하위 CMD 항목의 총 대기 시간은 부모 CMD와 동일합니다.AUTH : 프록시에서 인증을 수행하십시오.CONFIG : 서브 명령을 get , set 및 rewrite Corvus 구성을 검색하고 조작하십시오.SELECT : 색인이 0 이면 무시되며 전달되지 않습니다. EVAL : 하나 이상의 키가 제공되어야합니다. 여러 키가 있으면 모두 동일한 노드에 속해야합니다.다음 명령은 모든 인수 키가 동일한 redis 노드에 속해야합니다.
SORT .RPOP , LPUSH .SDIFF , SDIFFSTORE , SINTER , SINTERSTORE , SMOVE , SUNION , SUNIONSTORE .ZINTERSTORE , ZUNIONSTORE .PFCOUNTE , PFMERGE . KEYS 와 같이 다음 명령을 사용할 수 없으므로 모든 백엔드 Redis 인스턴스에서 키를 검색 할 수 없습니다.
KEYS , MIGRATE , MOVE , OBJECT , RANDOMKEY , RENAME , RENAMENX , SCAN , WAIT .BITOP , MSETNXBLPOP , BRPOP , BRPOPLPUSH .PSUBSCRIBE , PUBLISH , PUBSUB , PUNSUBSCRIBE , SUBSCRIBE , UNSUBSCRIBE .EVALSHA , SCRIPT .DISCARD , EXEC , MULTI , UNWATCH , WATCH .CLUSTER .ECHO , QUIT .BGREWRITEAOF , BGSAVE , CLIENT , COMMAND , CONFIG , dbsize, DBSIZE SYNC DEBUG , FLUSHALL , FLUSHDB , MONITOR , ROLE , SAVE , LASTSAVE , SLAVEOF , SHUTDOWN . MIT. 저작권 (C) 2016 Eleme Inc.
자세한 내용은 라이센스를 참조하십시오.