安装

git clone https://github.com/twitter/twemproxy.git
cd twemproxy
autoreconf -fvi
./configure --enable-debug=full --prefix=/ihome/db/redis/twemproxy
make -j8
make install

安装完毕的结构:

╭─sky@sky-linux /ihome/db/redis/twemproxy  
╰─➤  tree .
.
├── sbin
│   └── nutcracker
└── share
    └── man
        └── man8
            └── nutcracker.8

4 directories, 2 files

启动

创建一个配置文件在安装目录的conf下,假设为: twemproxy.yml,内容如下:

alpha:
  listen: 127.0.0.1:22121
  hash: fnv1a_64
  distribution: ketama
  auto_eject_hosts: true
  redis: true
  server_retry_timeout: 2000
  server_failure_limit: 1

  servers:
   - 127.0.0.1:6379:1 server1
   - 127.0.0.1:6479:1 server2

测试配置文件的语法:

╭─sky@sky-linux /ihome/db/redis/twemproxy  
╰─➤  ./sbin/nutcracker -t -c conf/twemproxy.yml 
nutcracker: configuration file 'conf/twemproxy.yml' syntax is ok
╭─sky@sky-linux /ihome/db/redis/twemproxy  
╰─➤  

启动:

╭─sky@sky-linux /ihome/db/redis/twemproxy  
╰─➤  ./sbin/nutcracker -d -c conf/twemproxy.yml -p twemproxy.pid -o twemproxy.log

然后直接连接到代理:

╭─sky@sky-linux /ihome/db/redis/redis-current/bin  
╰─➤  ./redis-cli -p 22121
127.0.0.1:22121> get hello1
"1"

即可.

支持和不支持的命令说明

Github

说明

如果集群的redis中有一台挂了,会导致使用不了.