twemproxy

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"即可。

原文地址:https://www.cnblogs.com/got-my-way/p/3927243.html