predixy的安装和配置:
predixy 是高性能的适用于 redis 集群和哨兵的代理。
predixy github 地址:https://github.com/joyieldInc/predixy
predixy 编译安装需要 C++11 版本的编译器,至少需要 CentOS 7及以上版本才能编译安装。对于 CentOS 6或更低版本,可以直接使用在 github release 中的二进制版本。
##安装
tar -xzf predixy-1.0.5-bin-amd64-linux.tar.gz
mv predixy-1.0.5 /usr/local/
cd /usr/local/predixy-1.0.5/conf/
修改里边的两个配置文件:predixy.conf cluster.conf
###predixy 支持多种架构,由于使用的是 redis cluster,只需配置 redis cluster 对应的配置文件cluster.conf 即可。
内容如下:
ClusterServerPool {
MasterReadPriority 60
StaticSlaveReadPriority 50
DynamicSlaveReadPriority 50
RefreshInterval 1
ServerTimeout 1
ServerFailureLimit 10
ServerRetryTimeout 1
KeepAlive 120
Servers {
+ 127.0.0.1:6379
+ 127.0.0.1:6380
+ 127.0.0.1:6381
+ 127.0.0.1:6382
+ 127.0.0.1:6383
+ 127.0.0.1:6384
}
}
在 Servers 部分配置集群中任意一个节点即可,predixy 会自动发现整个集群的信息,即使配置的节点挂掉后,predixy 代理仍然可正常工作。通过自动发现集群,可以减少 cluster.conf 配置文件的修改及对 predixy 的重启操作。但 predixy 无法删除曾经自动发现的节点,如果某节点下掉,predixy 仍会看到之前的节点,虽然不影响正常使用,日志则会不断报出错误信息。需重启 predixy 解决。
配置 predixy.conf
Name Predixy001
Bind 0.0.0.0:7617
Include cluster.conf
注意 Include 部分,只需包括 cluster.conf,其他的则注释掉,否则可能会影响到 predixy的使用。
启动predixy
cd /usr/local/predixy-1.0.5/bin/
cp predixy /usr/local/bin/
##启动
nohup predixy predixy.conf > /tmp/predixy.log 2>&1 &
##查看日志
tail -f /tmp/predixy.log
predixy 添加环境变量,在 /etc/profile 中添加,然后在 /etc/rc.local 中设置开机启动 nohup predixy /usr/local/predixy-1.0.5/conf/predixy.conf > /tmp/predixy.log 2>&1 &
##可以看到集群的信息
redis-cli -p 7617 info
参数说明:
MasterReadPriority,StaticSlaveReadPriority,DynamicSlaveReadPriority 三个参数和 redis 本身配置文件中的 slave-priority 没任何关系的。 如果是自动发现找到的节点,则 DynamicSlaveReadPriority 会起作用,如果是直接配置的节点,则 StaticSlaveReadPriority 会起作用。
Master/SlaveReadPriority |
Master |
Slave1 |
Slave2 |
Fail-over notes |
---|---|---|---|---|
60/50 | all requests | 0 requests | 0 requests | Master dead, read requests deliver to slave until master(maybe new master) alive |
60/0 | all requests | 0 requests | 0 requests | Master dead, all requests fail |
50/50 | all write requests, 33.33%read requests | 33.33% read requests | 33.33% read requests | - |
0/50 | all write requests, 0 read requests | 50% read requests | 50% read requests | all slaves dead, all read requests fail |
10/50 | all write requests, 0 read requests | 50% read requests | 50% read requests | all slaves dead, read requests deliver to master |
RefreshInterval : predixy 获取节点信息和集群 hash slot 集群信息的间隔 ServerFailureLimit : predixy 停止路由到节点之前失败的次数 ServerTimeout : 单个命令执行的超时时间
原文:https://www.cnblogs.com/xingchong/p/14752872.html