Skip to content

linfangrong/carrier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c6ecae7 · Feb 7, 2025

History

24 Commits
Feb 7, 2025
Oct 17, 2015
Aug 20, 2019
Aug 20, 2019
Oct 17, 2015
Apr 21, 2020
Jan 21, 2025
Nov 23, 2015
Nov 23, 2015
Sep 9, 2019
Aug 20, 2019

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

Redis Cluster Proxy for Redis 3.0

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published