redis cluster + predixy + keepalived
redis使用官方的redis cluster集群方案。因为redis cluster是散列模型,需读对开发提供所有redis节点的访问地址,于是使用predixy对redis cluster节点进行代理。再使用keepalived对predixy进行高可用
- 规划IP如下
IP | 功能 |
---|---|
192.168.1.10 | VIP |
192.168.1.11 | redis-node-1 |
192.168.1.12 | redis-node-2 |
192.168.1.13 | redis-node-3 |
每台redis节点上运行两个redis实例
所有节点关闭防火墙和selinux
创建redis cluster
0x01 redis安装
1 | yum install gcc -y |
0x02 创建redis配置文件
配置说明
1
2
3
4
5
6
7
8
9 port 7000 #监听的端口号
bind 0.0.0.0 #监听IP
cluster-enabled yes #开始cluster模式
cluster-config-file /opt/redis-master/nodes-7000.conf #cluster配置文件,这西写好路径自是生成
cluster-node-timeout 15000 #节点超时时间
cluster-require-full-coverage no #槽全覆盖,设置为no。避免因为节点宕机导致槽未全覆盖导致集大宕机
daemonize yes #后台运行
logfile /opt/redis-master/redis.log #日志文件记录地址
appendonly yes #数据写入硬盘,保证数据持久化
1 | mkdir /opt/redis-{master,slave} |
0x03 开启redis
在三台redis node上创建配置文件后启动redis实例1
2redis-server /opt/redis-master/redis-master.conf
redis-server /opt/redis-slave/redis-slave.conf
0x04 创建redis cluster集群
1 | #由于redis-trib.rb依赖ruby,而且redis 4.0以上需要ruby2.2.2以上版本。 |
创建predixy代理
0x01 安装predixy
1 | git clone https://github.com/joyieldInc/predixy.git |
0x02 创建predixy配置文件
1 | mkdir /opt/predixy |
0x03 启动代理
代理部署到三个节点上,同样配置,并启动代理1
setsid predixy /opt/predixy/predixy.conf >> /opt/predixy/predixy.log
部署keepalived
0x01 安装keepalived
1 | yum insall keepalived -y |
0x02 修改keepalived配置文件
1 | vim /etc/keepalived/keepalived.conf |
0x03 启动keepalived并且创建守护脚本
1 | #启动keepalived |