高性能的Redis代理TwemProxy

本文深入探讨了TwemProxy作为Redis的中间件代理,阐述其功能特性,包括自动删除失败节点、连接重试、节点数量控制、作为缓存存储、HashTag设置等。同时,介绍了如何解决在Google Code上下载TwemProxy tarball分发包的问题,以及通过一系列步骤成功编译和安装的过程。此外,展示了如何配置和运行TwemProxy,包括连接池、Redis实例配置及启动操作。

TwemProxy是一个Redis的中间件代理,具有很多有用的功能,可以暂时替代一部分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 ) automakelibtool后,却一直无法编译安装成功。不是报“Error : possibly undefined macro: AM_INIT_AUTOMAKE”,就是报“Cannot find install-sh, install.sh, or shtool”。最后终于找到 解决办法1 解决法2

最后,我确定在我环境中能成功编译安装的方法是:

>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服务器,端口为63796479。之后相应地,配置好两个Redis实例并启动。现在就可以启动twemproxy了,直接src/nutcracker就可以运行。

测试一下是否连通了。用redis-cli -p 22121连接到twemproxy的监听端口,执行一些set命令,然后连接到两个Redis实例中就能看到有一些key-value保存进去了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值