小时? 发表于 2015-7-23 05:21:54

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"即可。
  
页: [1]
查看完整版本: twemproxy