高性能的Redis代理TwemProxy

TwemProxy是一个Redis的中间件代理,具有很多有用的功能,可以暂时替代一部分Redis Cluster的功能:

2  支持失败节点自动删除

2  可以设置重新连接该节点的时间

2  可以设置连接多少次之后删除该节点

2  该方式适合作为cache存储

2  支持设置HashTag

2  通过HashTag可以自己设定将两个KEY hash到同一个实例上去。

2  减少与redis的直接连接数

2  保持与redis的长连接

2  可设置代理与后台每个redis连接的数目

2  自动分片到后端多个redis实例上

2  多种hash算法

2  可以设置后端实例的权重

2  避免单点问题

2  可以平行部署多个代理层,client自动选择可用的一个

2  支持状态监控

2  可设置状态监控ip和端口,访问ip和端口可以得到一个json格式的状态信息串

2  可设置监控信息刷新间隔时间

2  高吞吐量

2  连接复用,内存复用。

2  将多个请求组成redis pipelining统一向redis请求

安装问题解决

TwemProxy的tarball分发包在Google Code上,无法下载了…只能从GitHub上下载源码包进行手动编译了。安装、升级了autoconf(2.64以上,下载地址: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解决办法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服务器,端口为6379和6479。之后相应地,配置好两个Redis实例并启动。现在就可以启动twemproxy了,直接src/nutcracker就可以运行。

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

时间: 2024-08-09 23:52:29

高性能的Redis代理TwemProxy的相关文章

redis 代理工具Predixy安装部署

Predixy Predixy 是一款高性能全特征redis代理,支持redis-sentinel和redis-cluster 特性 高性能并轻量级 支持多线程 多平台支持:Linux.OSX.BSD.Windows(Cygwin) 支持Redis Sentinel,可配置一组或者多组redis 支持Redis Cluster 支持redis阻塞型命令,包括blpop.brpop.brpoplpush 支持scan命令,无论是单个redis还是多个redis实例都支持 多key命令支持: mse

Redis的代理(Twemproxy)

Twemproxy是Twitter开源的Redis代理,借助其可实现稳定的Redis分布式方案,相对于官方较新的Redis Cluster架构,容量伸缩较麻烦. 安装比较简单,注意可能会遇到autoconf版本低的问题. 安装依赖库 # yum install autoconf libtool -y 下载最新版本 https://github.com/twitter/twemproxy/releases 编译安装twemproxy # tar zxf twemproxy-0.4.1.tar.gz

轻量的Memcached代理Twemproxy的部署

轻量的Memcached代理Twemproxy的部署 Twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数.由Twitter开源出来的缓存服务器集群管理工具,主要用来弥补Redis和Memcached对集群(cluster)管理指出的不足. Twemproxy是一个快速的单线程代理程序,支持Memcached ASCII协议和更新的Redis协议. Twemproxy最了不起的地方就在于它能在节点失败的时候卸载它,

Redis/SSDB+Twemproxy的配置与使用(Mac/Linux平台)

对于redis而已,相信不少的后台开发人员一直都在使用,相比memcache而已,redis不仅可以作为key-value缓存使用,而且提供了丰富的数据结构如set.list.map等,能够实现很多复杂的功能,但是Redis本身主要作用是内存缓存,不适合做持久化存储到磁盘,所以目前出现了很多基于磁盘存储的组件,如:SSDB.ARDB. LevelDB.LMDB.beansDB等 Twemproxy是一个Redis/Memcached代理中间件,可以实现诸如分片逻辑.HashTag.减少连接数等功

redis 代理

redis介绍 redis作为一个开源的kv数据库在互联网公司被广泛应用. 作为nosql的一员redis有这几个优点: KV存储 支持多种数据结构 全内存存储 持久化 主从复制 集群模式 社区活跃,文档齐全 事物都不是完美的,redis也有不少缺点: 2.x时代原生的故障自动转移恢复功能比较弱(senteinel出现的还比较晚) 在线扩容,缩容麻烦 主从复制采用全量复制的方式(2.8x之前使用fsync,2.8x之后使用psync) 如果单实例数据量过大,遭遇雪崩,重启恢复数据很痛苦 redi

Redis集群~StackExchange.redis连接Twemproxy代理服务器

回到目录 本文是Redis集群系列的一篇文章,主要介绍使用StackExchange.Redis进行Twemproxy(文中简称TW)代理服务的连接过程,事务上,对于TW来说,我们需要理解一下它的物理架构,它类似于Nugix,主要实现的是请求转发,但它还有一个重要的功能,那就是自动分片,这对于大数据是很必要的,你的服务器需要横向扩展时,不需要告诉客户端,这是一种很理解化的设计模式,当然,也对于Redis来说,在配置TW之后,是可以被全美支持的! 关于tw和Redis集群的设计图 关于StackE

python 实现类似tweproxy 和codes的功能的redis代理功能

手动编写redis代理软件脚本  实现类似tweproxy  和codes的功能 已经实现内容如下: 起1个代理ip和端口  redisl客户端连接代理  然后脚本通过一致性hash分发key到后端的redis 脚本如下 import SocketServer,sys from threading import Thread import socket from hash_ring import HashRing redis_servers = ['127.0.0.1:6480',       

Twemproxy来自Twitter的Redis代理

在大量用户大规模使用大型Redis节点的时候,目前从项目本身来看Redis基本上可以说是一个单例的业务. 关于这个项目的分布式我有一个很大的想法,在这个想法下,我不需要去对多线程版本的Redis做任何评估:在这个角度上对我来说,一个核就像是一台计算机,所以在多核上扩展就相当于分布在计算机之间的集群.多实例是一个无共享的架构.如果我们找到一个可用的方式来分片,那么所有事情就合理了. :-) 这也是为什么集群会成为Redis在2013年的焦点,并且,最终Redis 2.6的发布表现出了很好的稳定性和

使用twemproxy作为Redis代理

一 应用场景描述 最近第三个游戏上线,游戏的热点数据是全部存在Redis数据库 二 twemproxy介绍 Twemproxy又叫做nutcracker,是一个为memcached和redis协议提供的快速而轻量的代理.它的最初设计是为了减少后端缓存服务器的连接数量.通过protocol pipeling and sharding使得可以横向扩展后端的缓存架构. 三 twemproxy安装使用 wget https://github.com/twitter/twemproxy/archive/v