redis 主从搭建(基于sentinel哨兵)
- 下载redis安装包,地址:https://download.redis.io/releases/redis-4.0.7.tar.gz
- 上传安装包到服务器/home/work/redis目录下
- 进入安装包目录:
cd /home/work/redis
- 执行解压:
tar -xzvf redis-4.0.7.tar.gz
- 安装前先执行yum安装库文件,保证redis安装需要的库存在:
yum -y install wget gcc gcc-c++ make tar openssl openssl-devel cmake
- 进入redis-4.0.7目录执行: make & make test ,若没有报错,执行 创建build安装包目录
mkdir /home/work/redis/build
- 然后执行:
make PREFIX=/home/work/redis/build install
- 若执行成功,在 /home/work/redis/build/bin 目录下就是编译好的redis二进制文件
- 创建 主从文件目录:
mkdir /home/work/redis/master & mkdir /home/work/redis/slave1 & mkdir /home/work/redis/slave2
- 复制编译好的redis二进制文件到主从目录中:
cp -p /home/work/redis/build/bin/* /home/work/redis/master & cp -p /home/work/redis/build/bin/* /home/work/redis/slave1 & cp -p /home/work/redis/build/bin/* /home/work/redis/slave2
- 复制 配置文件redis.conf 到 master slave1 slave2 文件目录中 :
cp /home/work/redis/redis-4.0.7/redis.conf /home/work/redis/master & cp /home/work/redis/redis-4.0.7/redis.conf /home/work/redis/slave1 & cp /home/work/redis/redis-4.0.7/redis.conf /home/work/redis/slave2
- 修改这redis.conf配置文件:
bind 0.0.0.0
protected-mode no
port 16379
daemonize no
pidfile "/var/run/redis_16379.pid"
dir "/home/work/redis/master"
masterauth "1234"
requirepass "1234"
bind 0.0.0.0
protected-mode no
port 16380
daemonize no
pidfile "/var/run/redis_16380.pid"
dir "/home/work/redis/slaves1"
masterauth "1234"
requirepass "1234"
slaveof 127.0.0.1 16379
bind 0.0.0.0
protected-mode no
port 16381
daemonize no
pidfile "/var/run/redis_16381.pid"
dir "/home/work/redis/slaves2"
masterauth "1234"
requirepass "1234"
slaveof 127.0.0.1 16379
- 分别在maser slave1 slave2目录下创建sentinel.conf文件,分别编辑:
port 26379
dir "/home/work/redis/master/data"
logfile "26379.log"
bind 0.0.0.0
daemonize yes
sentinel monitor bidMaster 127.0.0.1 16379 2
protected-mode no
sentinel auth-pass bidMaster 1234
port 26380
dir "/home/work/redis/slaves1/data"
logfile "26380.log"
bind 0.0.0.0
daemonize yes
sentinel monitor bidMaster 127.0.0.1 16379 2
protected-mode no
sentinel auth-pass bidMaster 1234
port 26381
dir "/home/work/redis/slaves2/data"
logfile "26381.log"
bind 0.0.0.0
daemonize yes
sentinel monitor bidMaster 127.0.0.1 16379 2
protected-mode no
sentinel auth-pass bidMaster 1234
- 编写redis与sentinel的启动脚本:
cd /home/work/redis/master
vim start_redis.sh
./redis-server redis.conf &
wq 保存
vim start_sentinel
./redis-sentinel sentinel.conf &
wq 保存
修改shell脚本的执行权限: chmod +x *.sh
slave1 与slave2 类似
- 先启动 master slave1 slave2中的start_redis脚本,然后再启动 master slave1 slave2中的sentinel脚本
我的公众号,欢迎关注一起探讨开发技术