Redis 代理部署记录
本文档基于 predixy 支持Redis集群的代理
安装软件
predixy安装包下载地址:https://github.com/joyieldInc/predixy/releases/download/1.0.5/predixy-1.0.5-bin-amd64-linux.tar.gz
## 演示场景将软件安装在指定文件夹
cd /home/archser/soft/
## 下载压缩包
wget https://github.com/joyieldInc/predixy/releases/download/1.0.5/predixy-1.0.5-bin-amd64-linux.tar.gz
## 解压
tar predixy-1.0.5-bin-amd64-linux.tar.gz
修改配置文件
进入 conf 文件夹 cd ./conf
文件夹中需要关注的是三个配置文件,predixy.conf auth.conf sentinel.conf
predixy.conf ## 主配置文件
auth.conf ## 权限配置文件(密码和指定key的集合)
sentinel.conf ## 哨兵信息配置文件
predixy.conf
## 启用log日志模式 将 Log ./predixy.log 解开注释并修改,将日志文件单独存放
Log ../log/predixy.log
## 解开 LogRotate 1d ,每天一个新的日志文件
LogRotate 1d
## 使用哨兵配置文件
# Include cluster.conf
Include sentinel.conf
#Include try.conf
auth.conf
## 配置 predixy 链接密码
Authority {
Auth archser_redis {
Mode read
}
Auth archser_redis {
Mode write
}
}
sentinle .conf
### 配置哨兵信息
SentinelServerPool {
## 这里配置 Redis链接密码
password archser_redis
Databases 16
Hash crc16
HashTag "{}"
Distribution modula
MasterReadPriority 60
StaticSlaveReadPriority 50
DynamicSlaveReadPriority 50
RefreshInterval 1
ServerTimeout 1
ServerFailureLimit 10
ServerRetryTimeout 1
KeepAlive 120
## 这里添加哨兵信息
Sentinels {
+ 192.168.31.151:26379
+ 192.168.31.154:26379
+ 192.168.31.157:26379
}
## 这里的名字是哨兵集群的名字
Group mymaster {
}
}
启动 predixy
../bin/predixy ./predixy.conf &
## 启动完成可以查看日志文件中的信息是否已经正常连接了哨兵
测试代理
测试原理就是手动关闭主节点Redis,看 predixy 是否可以自动代理新的主节点
## 链接predixy 我们约定将此窗口命名为 redis-cli 窗口,后面还会用这个窗口
root@localhost conf]# redis-cli -p 7617
127.0.0.1:7617> AUTH archser_redis
OK
127.0.0.1:7617> set a a
OK
## 查看sentinle 的日志,看现在的主节点是哪个Redis实例,手动关闭
## 等到 sentinel 输出了新节点信息的时候,重复执行redis命令看是否正常
## sentinel 信息如下
[root@localhost redis_6379]# tail -f /home/archser/redis_6379/sentinel.log
10883:X 23 Feb 2021 13:56:33.079 # +sdown master mymaster 192.168.31.157 6379
10883:X 23 Feb 2021 13:56:33.090 # +new-epoch 4
10883:X 23 Feb 2021 13:56:33.090 # +vote-for-leader 821591ce5ba737641e70ac98ebc0b6ccf1540426 4
10883:X 23 Feb 2021 13:56:33.163 # +odown master mymaster 192.168.31.157 6379 #quorum 3/2
10883:X 23 Feb 2021 13:56:33.163 # Next failover delay: I will not start a failover before Tue Feb 23 14:02:33 2021
10883:X 23 Feb 2021 13:56:34.055 # +config-update-from sentinel 821591ce5ba737641e70ac98ebc0b6ccf1540426 192.168.31.151 26379 @ mymaster 192.168.31.157 6379
10883:X 23 Feb 2021 13:56:34.055 # +switch-master mymaster 192.168.31.157 6379 192.168.31.151 6379
10883:X 23 Feb 2021 13:56:34.055 * +slave slave 192.168.31.154:6379 192.168.31.154 6379 @ mymaster 192.168.31.151 6379
10883:X 23 Feb 2021 13:56:34.055 * +slave slave 192.168.31.157:6379 192.168.31.157 6379 @ mymaster 192.168.31.151 6379
10883:X 23 Feb 2021 13:56:44.097 # +sdown slave 192.168.31.157:6379 192.168.31.157 6379 @ mymaster 192.168.31.151 6379
## 回到 redis-cli 窗口 在再次操作Redis ,看是否正常
127.0.0.1:7617> set a a
OK
## 如果正常输出,则证明当前系统中的Redis集群在主节点意外宕机之后
## 哨兵会自动选举新的主节点返回给 predixy
## predixy 自动代理新的主节点,客户端不需要任何修改就实现了 “高可用”