网址
https://github.com/twitter/twemproxy
可查看readme文档,学习安装
git clone https://codechina.csdn.net/mirrors/twitter/twemproxy.git
如果请求失败,更新nss
$ yum update nss
$ yum install automake libtool -y
$ autoreconf -fvi
如果报错
错误: autoconf version 版本号 or higher is required
这里需要更高版本
解决思路:
$ yum search autoconf
如果没有,可能当前系统自带的仓库版本太低,需要配制更高级的仓库
//TODO
$ ./configure
$ make
进入script目录
cd script
查看 nutcracker.init 文件
vi nutcracker.init
角本中要注意的两行代码
OPTIONS="-d -c /etc/nutcracker/nutcracker.yml"
配制文件指定的目录
prog="nutcracker"
要运行的指令
直接把此角本文件拷贝init.d目录下
$ cp nutcracker.init /etc/init.d/twemproxy
拷贝的文件是无法执行的,进入init.d目录下,设置权限
$ cd /etc/init.d/
$ chmod +x twemproxy
设置配制文件
在etc下创建目录
$ mkdir /etc/nutcracker/
回到源码目录,找到conf目录
$ cd /***/twemproxy/conf
拷贝所以文件到/etc/nutcracker/中
$ cp ./* /etc/nutcracker/
要修改nutcracker.yml文件,做先对nutcracker.yml做个备份,如果修改错了,可以在原目录中还原
$ cp nutcracker.yml nutcracker.yml.bak
vi nutcracker.yml
--listen 监听ip:port
--hash 使用那种哈希算法
--distribution 分布式数据使用那种模型,ketama、modula、random
--redis true|false false:使用memcached;true:使用redis
--servers 设置缓存库ip:port:权重(memcached|redis)
需求,只对一个redis集群做代理,所以保留一个配制,删除多余的配制,同时配制两个redis仓库做实验
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
-127.0.0.1:6380:1
配制运行的指令
可执行的程序在源码src目录下(nutcracker),拷贝一个放到/usr/bin中
$ cp nutcracker /usr/bin
这个在任何地方都可以使用此指令了
开启两个redis服务,分别port为6379、6380
注:redis如果手动无配制启动,会默认把当前目录设置为持久化目录
$ redis-server --port 6379
$ redis-server --port 6380
service twemproxy start
redis-cli -p 22121
注:有些指令不支持
keys *
watch k1
multi