redis分区代理-twemproxy

还是一样,先参考https://www.cnblogs.com/gabin/p/13652357.html创建一个docker下的ubuntu16实例

在这个实例下进行试验,

twemproxy参考:http://redis.cn/topics/partitioning.html

一、进入github源码,https://github.com/twitter/twemproxy

二、根据描述进行build

三、开始上述步骤

  1、git clone源码下来(git要先安装),由于这边要求git协议的登录验证,所以我用的是https

git clone https://github.com/twitter/twemproxy.git

  2、进入源码目录

cd twemproxy

  3、进行配置,发现没有autoreconf命令,使用apt search autoreconf,进行安装,这个自己学着搞

autoreconf -fvi
./configure --enable-debug=full

  4、执行完发现有了Makefile,执行编译

make

四、安装service服务

  0、生成一些对应目录

mkdir /opt/nutcracker
mkdir /opt/nutcracker/log
mkdir /opt/nutcracker/etc
mkdir /opt/nutcracker/sbin

  1、拷贝可执行文件到/usr/bin (如果没有执行权限自行添加chmod +x )

cp src/nutcracker /usr/bin

  2、从源码拷贝init文件,这边是debian系列,所以拷的这个 (如果没有执行权限自行添加chmod +x )

cp scripts/nutcracker.init.debian /etc/init.d/nutcracker

  3、拷贝配置文件

mkdir /opt/nutcracker/etc
cp conf/* /opt/nutcracker/etc

  4、拷贝可执行文件到对应的配置目录

cp /src/nutcracker /opt/nutcracker/sbin

五、修改配置文件

vim /opt/nutcracker/etc/nutcracker.yml

listen:监听的端口,通过这个端口来进行redis客户端连接

hash:哈希函数

distribution:分区模式,ketama表示的是一致性哈希算法

redis:总是true

servers:实际的redis节点

六、在实际启动配置文件中的redis服务之后,启动twemproxy

  •  发现报错,原因是docker中不能进行ulimit扩大的操作, 

注释掉对应文件中的命令

  • chown报错:把$USER:$USER都改成$USER,参考vim命令      
:s/$USER:$USER/$USER/g 
  •  log目录没有权限报错:给/opt/nutcracker/log赋予权限:这边我比较不严谨直接
    chmod 777 /opt/nutcracker/log
    正式环境建议自己再研究下

七、重新启动

service nutcracker start

成功

八、用redis-cli登录代理端口

redis-cli -p 22121

 九、测试指令(有些指令能用,有些不能,和集群有一定关系,因为无法确认位置)

最后吐槽下ubuntu debian系的真的烦,看到别人centos安装起来很简单,无奈之前公司都是用ubuntu比较多,下次尝试下centos

原文地址:https://www.cnblogs.com/gabin/p/13674536.html