twemproxy - Proxy Server for Redis 安装测试
1. 安装
(1) 系统环境
测试用的服务器为阿里云ECS,4核8G,CentOS6.3 64bit。
部署了3个Redis实例,监听端口号为7410,7420,7430,设置maxmemory为256MB。
(2) 安装
在安装twemproxy之前,先要安装几个编译工具:
$ yum install autoconf $ yum install automake $ yum install m4
从 twemproxy的github 提示的 distribution tarball下载。下载最新版(此时为0.3.0)解压后,按照github上的README中关于安装的提示,在解压后的 nutcracker-0.3.0/ 执行以下命令:
$ ./configure $ make $ sudo make install
2. 配置
nutcracker默认的配置文件: conf/nutcracker.yml
alpha: listen: 0.0.0.0:6379 hash: fnv1a_64 distribution: ketama auto_eject_hosts: true redis: true server_retry_timeout: 2000 server_failure_limit: 1 servers: - 127.0.0.1:7410:1 - 127.0.0.1:7420:1 - 127.0.0.1:7430:1
其中,127.0.0.1:7410:1 最后一个数字代表的是权重。
3. 启动和停止
(1) 启动
nutcracker -d -v 6 -o nutcracker.log -c nutcracker.yml -m 16384
(2) 停止
暂时没有找到停止的命令,直接kill掉的。
4. 迁移现有的单台Redis数据至nutcracker
(1) 下载python工具 redis-dump-load
下载后解压。
安装依赖项
easy_install redis
easy_install simplejson
(2) 导出json格式的dump文件
python redisdl.py -H 127.0.0.1 -p 6379 -E utf-8 > dump.json
(3) 导入json格式的dump文件
python redisdl.py -l -H 192.168.1.13 -p 6379 -E utf-8 < dump.json
(4) 运行时如果出现如下警告信息:
/usr/lib/python2.6/site-packages/redis-2.10.3-py2.6.egg/redis/client.py:404: DeprecationWarning: "charset" is deprecated. Use "encoding" instead
意思是脚本中使用charset的参数在新版中已经被废弃,改为encoding。这个直接修改一下redisdl.py, 将其中2处 "charset=encoding",改为"encoding=encoding"即可。