高性能的Redis代理TwemProxy

最后更新于:2022-04-01 20:33:25

TwemProxy是一个Redis的中间件代理,具有很多[有用的功能](http://cloudaice.com/twemproxy-explore/),可以暂时替代一部分Redis Cluster的功能: ²  支持**失败节点自动删除** ²  可以设置重新连接该节点的时间 ²  可以设置连接多少次之后删除该节点 ²  该方式适合作为cache存储 ²  支持设置HashTag ²  通过HashTag可以自己设定将两个KEY hash到同一个实例上去。 ²  减少与redis的直接连接数 ²  **保持与redis的长连接** ²  可设置代理与后台每个redis连接的数目 ²  **自动分片到后端**多个redis实例上 ²  多种hash算法 ²  可以设置后端实例的权重 ²  避免单点问题 ²  可以平行**部署多个代理**层,client自动选择可用的一个 ²  支持状态监控 ²  可设置状态监控ip和端口,访问ip和端口可以得到一个json格式的状态信息串 ²  可设置监控信息刷新间隔时间 ²  高吞吐量 ²  连接复用,内存复用。 ²  **将多个请求组成redis pipelining**统一向redis请求 ### 安装问题解决 TwemProxy的tarball分发包在Google Code上,无法下载了…只能从GitHub上下载源码包进行手动编译了。安装、升级了autoconf(2.64以上,下载地址:[http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz](http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz))、automake、libtool后,却一直无法编译安装成功。不是报“Error : possibly undefined macro: AM_INIT_AUTOMAKE”,就是报“Cannot find install-sh, install.sh, or shtool”。最后终于找到[解决办法1](http://toto-share.com/2012/09/error-possibly-undefined-macro-am_init_automake/)和[解决办法2](http://toto-share.com/2012/09/configure-error-cannot-find-install-sh-install-sh/)。 最后,我确定在我环境中能成功编译安装的方法是: >tar -xzvf twemproxy-0.4.0.tar.gz >**aclocal *(****解决错误1)*** >autoconf -f -v –i >**autoreconf -f -i -Wall,no-obsolete *(****解决错误2)*** >./configure --enable-debug=full *(可以开启O3优化:CFLAGS="-O3 -fno-strict-aliasing" ./configure)* >make >src/nutcracker –h *(**查看各种选项)* ### 配置和运行 conf/nutcracker.yml是默认使用的配置文件,打开后能看到配置了alpha, beta, gamma, delta, omega五个连接池作为例子。我们只保留alpha,并配置两个redis服务器,端口为6379和6479。之后相应地,配置好两个Redis实例并启动。现在就可以启动twemproxy了,直接src/nutcracker就可以运行。 测试一下是否连通了。用redis-cli -p 22121连接到twemproxy的监听端口,执行一些set命令,然后连接到两个Redis实例中就能看到有一些key-value保存进去了。
';