predixy代理集群
centos6.x以下不支持c++11的编译,可以下载编译过的可执行程序;
predixy支持redis哨兵和集群,哨兵可监控多套主从redis实例。
wget github中predixy编译过的predixy可执行文件连接
tar xf tar.gz 文件 解压
bin 目录下是可执行程序
conf下是配置文件
predixy.conf:开启端口号 bind连接注释
导入哨兵配置文件 开启include标签
sentinel.conf:设置集群:127.0.0.1:26379/26380/26381
group+masterName 设置redis集群的主实例名字
masterName 是下面配置文件 ooxx 和 xxoo
cd /test
修改26379/26380/26381的哨兵的配置文件:
port 26379/26380/26381
sentinel monitor ooxx 127.0.0.1 36379 2 redis主机 2是负载均衡权重
sentinel monitor xxoo 127.0.0.1 46379 2 redis主机
3个哨兵监控2套主从
启动3个哨兵
redis-server 26379.conf --sentinel 启动哨兵26379
redis-server 26380.conf --sentinel 启动哨兵26380
redis-server 26381.conf --sentinel 启动哨兵26381
启动2套主从
cd test
mkdir 36379 36380 46379 46380
cd 36379 redis-server --port 36379 启动主
cd 36380 redis-server --port 36380 --replicaof 127.0.0.1 36379 启动从
cd 46379 redis-server --port 46379 启动主
cd 46380 redis-server --port 46380--replicaof 127.0.0.1 46379 启动从
启动predixy
./predixy ../conf/predixy.conf
redis-cli -p 7617
set k1 a
set k2 b
落到不同redis主机
set {oo}k1 abc
set {oo}k2 abc
落到同一个redis主机
代理后多套主从数据分治了,所以keys * ;watch ;multi不可用,事务不可用,除非只代理一套主从。
去predixy配置中文件删除group一个主从,代理只去一个主从放数据。在开启7617,数据只放一个主机,这时候支持事务,因为就一个实例,所以keys * ;watch ;multi可用。
redis 36379主机挂掉,会推举新的redis从机作为主机。哨兵推举master,选举机制。这时候7617客户端连接可正常使用。