使用twemproxy搭建redis集群

twemproxy是twitter开发的一个redis代理proxy

一:redis的安装

wget http://download.redis.io/releases/redis-3.0.0.tar.gz

tar -xvf redis-3.0.0.tar.gz

cd redis-3.0.0

make

vim redis.conf

修改如下三处

daemonize yes
pidfile /tmp/redis7001.pid
port 7001


然后,把这个redis拷贝三份

端口分别为:7001,7002,7003

为了方便启、关闭动这三个redis

写了两个脚本

redis@redispc:~$ cat start_all.sh 
#!/bin/sh
/home/redis/redis7001/src/redis-server /home/redis/redis7001/redis.conf
/home/redis/redis7002/src/redis-server /home/redis/redis7002/redis.conf
/home/redis/redis7003/src/redis-server /home/redis/redis7003/redis.conf
redis@redispc:~$ cat stop_all.sh 
#!/bin/sh
/home/redis/redis7001/src/redis-cli -p 7001 shutdown 
/home/redis/redis7002/src/redis-cli -p 7002 shutdown 
/home/redis/redis7003/src/redis-cli -p 7003 shutdown 
redis@redispc:~$ 

二:twemproxy的安装

先安装autoconf(apt-get install autoconf

twemproxy下载地址:https://codeload.github.com/twitter/twemproxy/zip/master

cd twemproxy
autoreconf -fvi
./configure --prefix=/usr/local/twemproxy
make -j 8
make install

cd /usr/local/twemproxy
mkdir conf

cd conf
vim nutcracker.yml

redis1:
  listen: 0.0.0.0:8888 #使用哪个端口启动Twemproxy
  redis: true #是否是Redis的proxy
  hash: fnv1a_64 #指定具体的hash函数
  distribution: ketama #具体的hash算法
  auto_eject_hosts: true #是否在结点无法响应的时候临时摘除结点
  timeout: 400 #超时时间(毫秒)
  server_retry_timeout: 3000 #重试的时间(毫秒)
  server_failure_limit: 1 #结点故障多少次就算摘除掉
  servers: #下面表示所有的Redis节点(IP:端口号:权重)
   - 127.0.0.1:7001:1
   - 127.0.0.1:7002:1
   - 127.0.0.1:7003:1

三:启动

sh start_all.sh 启动三个redis

nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml   启动twemproxy


四:测试

public class App 
{
    public static void main( String[] args )
    {
    	Jedis jedis = new Jedis("192.168.1.108", 8888);
    	for(int i=1;i<=10;i++)
    	{
    		jedis.set("show_"+i, "CMCC"+i);
    	}
    	jedis.close();
    }
}

之后,

redis-cli -p 7001 执行 keys *

redis-cli -p 7002 执行 keys *

redis-cli -p 7003 执行 keys *

发现10条数据已经分布在不同的redis上了

你可能感兴趣的:(使用twemproxy搭建redis集群)