TwemProxy是一个Redis的中间件代理,具有很多有用的功能,可以暂时替代一部分Redis Cluster的功能:
² 支持失败节点自动删除
² 可以设置重新连接该节点的时间
² 可以设置连接多少次之后删除该节点
² 该方式适合作为cache存储
² 支持设置HashTag
² 通过HashTag可以自己设定将两个KEY hash到同一个实例上去。
² 减少与redis的直接连接数
² 保持与redis的长连接
² 可设置代理与后台每个redis连接的数目
² 自动分片到后端多个redis实例上
² 多种hash算法
² 可以设置后端实例的权重
² 避免单点问题
² 可以平行部署多个代理层,client自动选择可用的一个
² 支持状态监控
² 可设置状态监控ip和端口,访问ip和端口可以得到一个json格式的状态信息串
² 可设置监控信息刷新间隔时间
² 高吞吐量
² 连接复用,内存复用。
² 将多个请求组成redis pipelining统一向redis请求
最后,我确定在我环境中能成功编译安装的方法是:
>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保存进去了。