centos7 搭建redis一主二从三哨兵
安装redis
下载安装包
wget https://download.redis.io/releases/redis-5.0.14.tar.gz
#解压
tar -xvf redis-5.0.14.tar.gz
如果需要其他版本的redis可以到官网进行下载
编译
进入根目录,看到Makefile文件
进行编译
#安装 gcc
yum install gcc
#编译 默认make命令编译 => 如果提示:jemalloc/jemalloc.h: 没有那个文件或目录,make的时候加上MALLOC=libc 参数.
make MALLOC=libc
执行脚本处理
进入src找到需要的可执行文件,下图中绿色的就是需要的可执行文件
在根目录创建 bin ,将这些文件移入bin
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-sentinel redis-server ../bin/
启动服务命令(不建议)
./redis-server
启动客户端命令
./redis-cli
修改配置文件
修改redis.conf文件
# 找到 :port 6379 修改为
# 建议修改端口 方便测试连接 同时原端口6379容易中挖矿病毒
port xxxx
# 找到 requirepass foobared,下一行追加
# 设置密码
requirepass xxxxx
#找到bind配置 bind 127.0.0.1 设置0.0.0.0
# 设置能够连接redis的ip
bind 0.0.0.0
#找到 protected-mode yes 关闭保护模式
protected-mode no
推荐启动方式
./redis-server redis.conf
./redis-cli -p xxx
127.0.0.1:6880> auth 密码
配置一主二从三哨兵
资源准备
创建目录
/opt/redis/cluster-sentinel
复制三份redis到此目录(命名按自己需求来即可)
cd /opt/redis/cluster-sentinel
cp -r /usr/local/redis .
mv redis redis-6880
cp -r redis-6880 redis-6881
cp -r redis-6880 redis-6882
修改redis.conf配置文件
- 分别修改三个单体应用配置
#端口 三个不一样的端口
port 6880
#主从复制 初始主节点ip 和 端口 同一台机器127即可
# replicaof <masterip> <masterport>
# 旧版:# slaveof <masterip> <masterport>
replicaof 实际ip 8974
# 主节点密码
masterauth xxx
修改sentinel.conf配置
- 分别修改三个单体应用
# 设置守护进程 后台启动,不设置也可以
daemonize yes
# 初始主节点 ip 和 端口 , 2代表大于等于2票即可成为主节点
sentinel monitor mymaster 实际ip 8974 2
# 主节点密码
sentinel auth-pass mymaster xxx
启动测试
启动六个中端启动三个节点的redis和sentinel
进入bin目录执行
# 启动redis服务
./redis-server ../redis.conf
# 启动哨兵服务
./redis-sentinel ../sentinel.conf
测试
使用RedisDesktopManager进行测试
创建三个连接连接三个节点
此时我们在设置的主节点创建测试
然后我们去从节点进行查看
两个从节点都能查看新创建的例子,然后我们进行修改
我们可以看到从节点只有读权限
然后我们断开主结点的连接,观察哨兵变化
127.0.0.1:6882> shutdown SAVE
主节点失效后,通过投票选出了新的主节点,然后我们再去用6880节点进行修改
修改成功,说明该节点成为了主节点,一主二从三哨兵也就搭建完成了