Centos 7 搭建redis一主二从三哨兵

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文件
Centos 7 搭建redis一主二从三哨兵_第1张图片

进行编译

 #安装 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/

Centos 7 搭建redis一主二从三哨兵_第2张图片

启动服务命令(不建议)

./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  
# 旧版:# slaveof  
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进行测试

创建三个连接连接三个节点
在这里插入图片描述

此时我们在设置的主节点创建测试

在这里插入图片描述

然后我们去从节点进行查看

Centos 7 搭建redis一主二从三哨兵_第3张图片

两个从节点都能查看新创建的例子,然后我们进行修改

在这里插入图片描述

我们可以看到从节点只有读权限

然后我们断开主结点的连接,观察哨兵变化

127.0.0.1:6882> shutdown SAVE

在这里插入图片描述

主节点失效后,通过投票选出了新的主节点,然后我们再去用6880节点进行修改

Centos 7 搭建redis一主二从三哨兵_第4张图片

修改成功,说明该节点成为了主节点,一主二从三哨兵也就搭建完成了

你可能感兴趣的:(redis,redis,centos,数据库)