Skip to content

通过carrier + redis cluster 替换twemproxy(nutcracker) + redis standalone方式。

Notifications You must be signed in to change notification settings

dongzerun/carrier

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

carrier

通过carrier + redis cluster 替换 twemproxy(nutcracker) + redis standalone方式。 redis cluster集群的代理。

和twemproxy差别

  • twemproxy不支持动态扩容和缩容。redis cluster支持了动态扩容和缩容,通过carrier屏蔽。
  • twemproxy是单进程单线程。carrier则通过go的协程多并发处理,效率较高。
  • 支持读取命令从slave节点读取。
  • 支持的命令略多。

安装

sh install.sh

支持命令如下(大部分是多key,还有管理命令)

  • String: 不支持BITOP、MSETNX。
  • Lists: 不支持BLPOP、BRPOP、BRPOPLPUSH、RPOPLPUSH。
  • Connection: 不支持AUTH、QUIT。(SELECT对于redis cluster无意义,故永远返回OK)
  • Server: 全部不支持。(包括BGREWRITEAOF、BGSAVE、CLIENT、COMMAND、CONFIG、DBSIZE、DEBUG、FLUSHALL、FLUSHDB、INFO、LASTSAVE、MONITOR、ROLE、SAVE、SHUTDOWN、SLAVEOF、SYNC、TIME)。
  • Cluster: 全部不支持。(没有必要)。
  • Keys: 不支持KEYS、MIGRATE、MOVE、OBJECT、RANDOMKEY、RENAME、RENAMENX、SCAN、WAIT。(EXISTS暂时只支持单key)。
  • Transactions: 全部不支持。(包括DISCARD、EXEC、MULTI、UNWATCH、WATCH)。
  • Scripting: 全部不支持。(包括EVAL、EVALSHA、SCRIPT)。
  • Geo: 支持。
  • Hashes: 支持。
  • HyperLogLog: 不支持PFMERGE。(PFCOUNT只支持单key返回)。
  • Pub/Sub: 由于集群模式pub/sub实现相当于广播,暂不考虑支持。(可用第三方消息队列,如beanstalk、rabbitmq)。
  • Sets: 不支持SDIFF、SDIFFSTORE、SINTER、SINTERSTORE、SMOVE、SUNION、SUNIONSTORE。
  • Sorted Sets: 不支持ZINTERSTORE、ZUNIONSTORE。

感谢

About

通过carrier + redis cluster 替换twemproxy(nutcracker) + redis standalone方式。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.8%
  • Shell 0.2%