​回到目录​

Twenproxy除了可以作为redis的代理,它同样支持memerycached。我这里主要了解Twemproxy在redis集群上的解决方案。Twemproxy除了完美的解决了分片,路由等功能(同样采用了一致性hash算法) Twenproxy实现redis集群高可用 它支持node ejection,如果使用redis当缓存,不是很注重数据的一致性的话,开启node ejection可以在集群中某一台redis挂掉的时候将其送集群列表中移除,达到高可用性。

如果redis集群做为数据存储的话,或者很注重数据的一致性,则可以禁用node jection,但此时需要使用redis sentiel实现高可用性。

TW结构图

Redis学习笔记~Twenproxy所起到的作用_redis

安装TW的方法

安装

$ git clone git@github.com:twitter/twemproxy.git
$ cd twemproxy
$ autoreconf -fvi
$ ./configure --enable-debug=log
$ make

修改配置

# cd /usr/local/src/nutcracker-0.3.0/conf
# cp nutcracker.yml /etc/
# vim /etc/nutcracker.yml
alpha:
listen: 192.168.128.128:22121
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: true
redis: true
server_retry_timeout: 2000
server_failure_limit: 1
servers: --两台redis服务器的地址和端口
- 192.168.2.1:6379:1
- 192.168.2.2:6379:1

测试一下它的配置文件 conf是否有问题

# nutcracker -t /etc/nutcracker.yml

然后启动服务

# nutcracker -d -c /etc/nutcracker.yml

查看它的进程是否已经存在

ps -ef|grep nutcracker

Redis学习笔记~Twenproxy所起到的作用_redis_02

测试可以使用redis-cli这个工具去连接22122端口完成。

以后在进行redis连接时,就直接填写tw的地址和端口就行了。

​回到目录​

作者:仓储大叔,张占岭,
荣誉:微软MVP