CentOs7上搭建redis集群

本文详细介绍了如何在3台CentOS7虚拟机上搭建Redis主从集群,并配置哨兵系统。首先,通过安装脚本在各节点安装Redis,接着修改配置文件,包括设置允许远程访问的IP、端口、保护模式等。然后,启动Redis服务,并通过创建键值测试主从集群的正确性。最后,配置哨兵系统,确保在主节点故障时能自动切换。
摘要由CSDN通过智能技术生成

准备

  • vm虚拟机 (也可以使用wind10上有个系统自带的虚拟机)
  • FinalShell 国产的远程工具
  • redis-6.2.4
  • centOs 7 系统

前提

  1. 安装好vm虚拟机
  2. 安装好FinalShell
  3. vm上创建3个centOs 7 系统的虚拟机

说明

在vm中创建3个centOs7的虚拟机来安装redis,redis集群最少需要3个redis。因为redis底层的判断宕机的策略是当所有节点对某个节点投票超过半数时,就认为该节点不可用。

三台虚拟机的IP地址分别如下:
主节点(master):192.168.83.139 端口:6379
从节点1(slave):192.168.83.140 端口:6379
从节点2(slave):192.168.83.141 端口:6379

安装redis

在132.168.83.139服务器上创建一个安装redis的脚本文件,redisInstall.sh更多脚本

#!/bin/bash
# 打开IP地址的显示
cd /etc/sysconfig/network-scripts/
sed -i "/^ONBOOT=/s/no/yes/" ifcfg-ens33
service network restart
ip addr

# 安装 gcc-c++ 依赖
yum install gcc-c++ -y

# 安装vim
yum  install vim-enhanced

#安装wget
yum -y install wget

#开始安装redis
if [ ! -d '/usr/local/redis' ]
        then
                mkdir /usr/local/redis
else
        rm -rf /usr/local/redis
        mkdir /usr/local/redis
fi

cd /usr/local/redis

wget https://download.redis.io/releases/redis-6.2.4.tar.gz

tar xzf redis-6.2.4.tar.gz

cd redis-6.2.4

make

cd src

./redis-server &

./redis-cli

安装结束之后会在
/usr/local/ 下存在redis的文件夹,此为安装路径。
在这里插入图片描述
192.168.83.139上安装成功后,将脚本redisInstall.sh 用命令拷贝一份到另外两台服务器上。

# 格式: scp 文件名 root@服务器ip:目的服务器存放文件的地址

#例如:将 redisInstall.sh 拷贝到192.168.83.140 和 192.168.83.141上
scp redisInstall.sh root@192.168.83.140:/home/admin/script-sh/
scp redisInstall.sh root@192.168.83.141:/home/admin/script-sh/

拷贝完成之后分别在192.168.83.140和192.168.83.141上用redisInstall.sh 脚本安装redis。

修改redis配置

修改主节点redis的配置

  1. 用vim 打开 /usr/local/redis/redis-6.2.4/redis.conf 文件

  2. 找到 bind 的配置,该配置为允许远程访问的ip
    例如:主节点(192.168.83.139)允许两个从节点(192.168.83.140和192.168.83.141访问),则配置如下:

   	bind 192.168.83.140 	192.168.83.141
   	
   	#   或者配置为 0.0.0.0,表示所有IP都可访问
   	# bind 0.0.0.0
  1. 找到端口,改为6379,(端口默认6379)
port 6379
  1. 关闭保护模式,,使外部可访问。no表示关闭
protected-mode no
  1. 设置redis为后台启动
daemonize yes
  1. 修改redis的日志存放地址
logfile '/usr/local/redis/redis-6.2.4/logs/redis.log'
  1. 设置 redis 连接密码
# 格式: requirepass  密码
 requirepass root
  1. 设置从节点访问主节点的连接密码
# 格式: masterauth   密码
masterauth root
  1. 修改完成之后保存退出配置文件
  2. 在redis的安装目录下创建存放日志文件的文件夹和文件 (与步骤6中配置对应) 。
    /usr/local/redis/redis-6.2.4/ 下创建文件夹logs ,在logs文件夹下创建文件redis.log
  3. 运行下面的脚本文件open6379Port.sh 使服务器的防火墙开放6379端口
#!/bin/bash
firewall-cmd --add-port=6379/tcp --permanent --zone=public
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

到此配置完成

修改从节点的配置

使用 scp 命令将主节点的redis.conf拷贝到从节点的配置文件所在目录下覆盖原来的配置文件。
从节点的配置在拷贝过来的主节点的配置基础上进行修改。

打开拷贝过来的的配置文件。

根据主节点的修改步骤,到步骤2 的时候,修改所绑定的IP地址。
例如:当前从节点的IP为192.168.83.140,则步骤2中配置改为

bind 192.168.83.139 	192.168.83.141

在步骤8之后,修改以下配置,该配置主要用于标识主节点的IP和端口

replicaof 192.168.83.139  6379 

其余的步骤和主节点一致。

重启redis

  1. 在3个服务器上使用命令查看已经运行的redis,并用kill -9 将其关闭
ps -ef|grep redis
kill -9 redis进程号
  1. 在3个服务器中进入 /usr/local/redis/redis-6.2.4/src/ 目录,使用以下命令重启redis
./redis-server ../redis.conf

提示:启动后可在 /usr/local/redis/redis-6.2.4/logs/ 下查看日志文件。

验证集群

验证方式

在集群中的节点上创建一个键值,若集群搭建成功,则在其他节点上也能获取到此键值。

主节点

  1. 进入**/usr/local/redis/redis-6.2.4/src/** ,使用以下命令进入redis的客户端
./redis-cli 
  1. 进入客户端之后使用命令登录redis
# 格式:auth 在配置的时候requirepass 中配置的密码
auth root
  1. 测试是否成功登录redis,入下图说明登录成功。
    在这里插入图片描述

  2. 在主节点(192.168.83.139)创建一个键值
    在这里插入图片描述

  3. 去其他从节点(192.168.83.140和192.168.83.141)中登录redis查看。
    登录步骤为 步骤1,步骤2,步骤3

从节点192.168.83.140中能获取到主节点设置的键值。如下图:

在这里插入图片描述

从节点192.168.83.141中能获取到主节点设置的键值。如下图:
在这里插入图片描述

查看节点信息

进入节点的redis-cli界面

# 登录redis 的客户端 
./redis-cli -p 6379

# 输入密码
auth root

# 查询节点信息
info replication

在这里插入图片描述

说明redis的集群已经搭建成功。

主从集群设置哨兵

说明

哨兵主要用于监控主从结构中的主节点是否宕机,若主节点宕机,则哨兵会从其他从节点中选举节点作为新的主节点。选举完成后,所有从节点连接到新的主节点。
选举规则:
1. 排除不在线的节点
2. 排除与哨兵相应慢的节点
3. 排除与原主节点相应慢的节点
4. 按照权重选择节点
5. 按照序列顺序选择节点
6. …

推荐

哨兵数量推荐为3个以上,且为单数,防止哨兵选择的时候出现选节点票数相同。

哨兵配置步骤

以上面的主从结构为例,添加哨兵。1主2从。
若防火墙开启,需要检查是否开放redis和哨兵需要用到的端口:6379和26379

主节点的哨兵配置

重命名原有的 sentinel.conf 文件为sentinel.conf_bak

# 查看原sentinel.conf中未被注释的配置
cat sentinel.conf | grep -v "#" | grep -v "^$"

新创建名为sentinel.conf 的哨兵配置文件。

vim sentinel.conf

在哨兵配置文件中填入以下内容。

# 设置哨兵以守护进程的方式,后台启动
daemonize yes

# 配置哨兵的日志文件存放地址
logfile "/usr/local/redis/redis-7.0.12/logs/sentinel.log"

# 关闭保护模式
protected-mode no

# 配置哨兵监控的主节点
# 192.168.83.139:为主节点所在机器的IP地址
# 6379:为主节点redis的端口号
# 2 :为哨兵选举主节点的数量,当有2个或以上的哨兵选择某一节点为主节点后,则那个被选中的节点成为新的主节点。
sentinel monitor mymaster 192.168.83.139 6379 2

# 此处填写的是主节点中设置的redis密码,用于哨兵登录redis,必须与redis.conf配置中一致。对应上面的步骤 【7. 设置 redis 连接密码】中设置的值一致。
sentinel auth-pass mymaster root

注意:将此配置分别复制到其他两台服务器上,既3台服务器的哨兵配置是一样的。

启动哨兵

使用以下命令启动哨兵

# redis-sentinel 为安装redis时自带的脚本。与redis-server和redis-cli 同级目录。
# sentinel.conf 为上面自己编写的sentinel配置文件
# 注意:命令执行时注意脚本文件和配置文件的路径
./redis-sentinel sentinel.conf

查看哨兵

使用以下命令进入哨兵的操作界面查看哨兵信息

# 登录哨兵,进入哨兵操作界面
./redis-cli -p 26379

# 查看哨兵信息
info sentinel
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张帅三代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值