Redis高可用实验:主从复制+哨兵+集群

文章详细介绍了如何在Linux环境下安装Redis,包括主从复制的配置、Redis哨兵模式的设置、故障模拟以及Redis集群模式的启用和测试。每个实验步骤都涉及安装、配置和验证,旨在帮助读者理解并实践Redis的高可用性解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

实验零点五、Redis主从复制

安装Redis

修改Master上的Redis配置文件

修改Slave上的Redis配置文件

验证

实验一、Redis哨兵模式

实验前准备

修改Redis哨兵模式的配置文件

故障模拟

实验一点五、Redis集群模式

实验前准备

开启集群功能

测试


实验零点五、Redis主从复制

——这个实验是后面实验的基础,所以称之为实验零点五

实验前准备
Master节点:192.168.188.14
Slave节点1:192.168.188.15
Slave节点2:192.168.188.16
关闭防火墙
systemctl stop firewalld
setenforce 0

安装Redis

  1. 安装依赖环境
    yum -y install gcc gcc-c++ make
  2. 安装软件
    cd /opt/redis-5.0.7/
    make
    指定目录
    make PREFIX=/usr/local/redis install
    cd /opt/redis-5.0.7/utils
    执行安装脚本
    ./install_server.sh
    一路回车,最后path改一下

    做一个软链接
    ln -s /usr/local/redis/bin/* /usr/local/bin

修改Master上的Redis配置文件

  1. 打开
    vim /etc/redis/6379.conf redis.conf
  2. 修改监听地址为0.0.0.0,即任意地

    开启守护进程

    指定日志文件目录

    指定工作目录

    开启AOF持久化功能
  3. 重启服务
    /etc/init.d/redis_6379 restart

修改Slave上的Redis配置文件

  1. 打开
    vim /etc/redis/6379.conf
  2. 修改监听地址

    开启守护进程

    指定日志文件目录

    指定工作目录

    指定要同步的Master节点的IP和端口

    开启AOF持久化功能
  3. 重启服务
    /etc/init.d/redis_6379 restart

验证

  1. 在Master节点上查看日志
    tail -20 /var/log/redis_6379.log
    20条应该能看到了,看不到就多看几条,能看到下面这样就行
  2. 在Master节点上验证从节点
    redis-cli info replication

实验一、Redis哨兵模式

——本实验建立在实验零点五的基础上,前面的配置过程请看上一个实验

实验前准备

Master节点:192.168.188.14
Slave节点1:192.168.188.15
Slave节点2:192.168.188.16
关闭防火墙
systemctl stop firewalld
setenforce 0

修改Redis哨兵模式的配置文件

  1. 进入
    vim /opt/redis-5.0.7/setinel.conf
  2. 三台节点配置相同,如下:
    关闭保护模式

    默认监听端口

    指定sentinel后台启动

    指定日志存放目录

    指定数据库存放路径

    指定该哨兵节点监控,指定192.168.188.14为主节点,节点名为mymaster,2表示至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移

    判定服务器down的时间周期,单位毫秒

    故障节点的最大超时时间,单位毫秒
  3. 启动哨兵模式
    先启动Master,再启动Slave
    cd /opt/redis-5.0.7/
    redis-sentinel sentinel.conf &
  4. 查看哨兵信息
    redis-cli -p26379 info Sentinel

故障模拟

  1. 先查看一下Master上的redis的进程号,方便一会杀掉
    ps -elf | grep redis

    第一个就是redis-server的进程号,直接杀掉
    kill -9 42014
  2. 验证结果
    tail -50 /var/log/sentinel.log

    这一长串看不懂没事,直接看一下哨兵信息,更加直观
    redis-cli -p 26379 info Sentinel
    能看到主节点地址已经更换了

实验一点五、Redis集群模式

——本实验需要6个节点,3主3从,但是考虑到我电脑性能,决定把6个服务部署在一台虚拟机上,并以端口号进行区分

实验前准备

主节点:192.168.188.14:6001、192.168.188.14:6002、192.168.188.14:6003
从节点:192.168.188.14:6004、192.168.188.14:6005、192.168.188.14:6006
关闭防火墙
systemctl stop firewalld
setenforce 0
准备6个服务
创建6个目录
cd /etc/redis
mkdir -p redis-cluster/redis600{1..6}
复制配置文件

for i in {1..6}
do
cp /opt/redis-5.0.7/redis.conf /etc/redis/redis-cluster/redis600$i
cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis600$i
done



开启集群功能

  1. 修改配置文件,每个服务的配置文件除了端口其他都一样
    cd /etc/redis/redis-cluster/redis6001
    vim redis.conf
    在这里把监听地址注释掉,默认监听所有网卡

    关闭保护模式

    改一下端口,注意端口要不一样

    开启守护进程

    取消注释,打开集群功能

    取消注释,设置集群文件的名称

    取消注释,设置集群超时时间

    开启AOF持久化
  2. 启动各个redis节点
    for d in {1..6}
    do
    cd /etc/redis/redis-cluster/redis600$d
    redis-server redis.conf
    done

    查看一下进程
    ps -elf | grep redis
  3. 启动集群
    我用的是同一台虚拟机的不同端口,所以写的是127.0.0.1:6001-6,如果用的是多台虚拟机,只要把127.0.0.1改成相应的IP,端口也改成相应的端口就行,replicas 1代表每个主节点有1个从节点
    redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1

测试

  1. 使用redis
    加-c节点之间就可以互相跳转
    redis-cli -p 6001 -c
    看一下节点的哈希槽编号范围
    cluster slots
  2. 读写测试
    写一条数据
    set name tangshihong

    提示我们写入了127.0.0.1:6002,同时也跳转到了127.0.0.1:6002
    我们退出
    quit
    去别的节点看一下
    redis-cli -p 6003 -c
    看一下当前节点的key值
    keys *

    看不到就是对的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值