corvus
v0.2.7
Corvus是启用群集模式的REDIS 3.0的快速轻巧的REDIS群集代理。
大多数REDIS客户端实现不支持REDIS群集。我们有很多依赖Redis的服务,这些服务是用Python,Java,GO,Nodejs编写的。我们以前使用过Twemproxy,但它依赖于Sentinel来获得高可用性,还需要重新启动或删除后端REDIS实例,这会导致服务中断。 Twemproxy是单线线,我们必须为大量客户端部署多个TWEMPROXY实例,这会导致SA头痛。
因此,我们制作了Corvus。
请参阅我们的测试结果中的详细信息。
如果使用从版本页面下载的发行版,请制作:
$ 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 :分为多个单密钥EXISTSPING :被忽略,不会被转发。INFO , TIME :不会转发到后端redis,将返回代理中收集的信息。SLOWLOG :返回Corvus本身保存的慢速插条。请注意,与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 , DEBUG , FLUSHALL , FLUSHDB , MONITOR ,cole, LASTSAVE ,save, SAVE , ROLE , SHUTDOWN , SLAVEOF , SYNC 。 麻省理工学院。版权(C)2016 Eleme Inc.
有关详细信息,请参见许可证。