Mac 下配置redis主从和哨兵

2 篇文章 0 订阅

Tip:生活不易,码农辛苦
         我是小刀,在互联网中夹缝求生 我希望你开心…

Redis ——主从复制和哨兵模式

开篇简介

        因为上一篇文章讲了 redis 的安装并且在项目跑起来之后就想玩一下redis的分布式集群,之后就是各种学习,发现Mac系统下操作网上的资源少的狠而且坑还多,跟他步骤一样但是效果却不一样,太难了。其次就是版本差距太大,百度上的东西基本都是redis 3* ,版本不一样就会有好多目录结构不一样,所以我搞的是redis5.0的。过程并不麻烦,还是要多理解原理,下面就是我的安装过程和原理介绍。

安装redis和扩展

        未安装的小伙伴点击传送门
        传送门:https://blog.csdn.net/m0_46693411/article/details/105398841

搭建主从

    一. 总结
                在Redis集群中,让若干个Redis服务器去复制另一个Redis服务器,所以定义被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),这种模式叫做主从复制模式。可以为数据提供多个副本,实现高可用,并实现读写分离(主节点负责写数据,从节点负责读数据,主节点并把数据同步到从节点保证数据的一致性)。

    二. 创建目录

本人创建多个有其他用处,我们以7000 和 7001节点为实列在这里插入图片描述

    三. 配置文件

  1. 将redis 中的redis.conf文件分别拷贝到7000,7001节点下

  2. 修改主节点 redis.conf配置文件

    #修改端口号为6379
    port 6379
    #修改 是否要用守护线程的方式启动
    daemonize yes
    
    
  3. 分别修改7000,7001节点redis.conf文件

    #端口号分别修改为7000,7001
    port 7000/7001
    #守护线程修改过就不用在修改
    daemonize yes
    #配置主机复制的主ip和端口
    slaveof/replicaof 127.0.0.1  6379
    #配置从节点是否只读
    replica-read-only yes
    
  4. 多开几个终端分别启动6379,7000,7001节点服务

    以7000节点启动为例在这里插入图片描述

  5. redis-cli -p 端口 进入redis , 使用info replication命令查看当前状态
    在这里插入图片描述

    四. 缺点

        延时问题,由于所有的写操作都是在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使得这个问题更加严重。

哨兵模式

    一. 总结

       哨兵(Sentinel):具有监控(Monitoring),提醒(Notification),自动故障迁移(Automatic failover)功能。主要是为了解决在主从复制架构中出现宕机的情况,主从复制有一个问题就是故障无法自动化,哨兵模式就可以很好解决主节点故障自动化转移的问题,进一步提高系统的高可用。

    二. 配置文件

  1. 分别将redis安装目录下的sentinel.conf拷贝到7000,7001节点目录下

  2. 修改sentinel.conf 配置文件

    # 添加守护进程模式
    daemonize yes
    # 添加指明日志文件名
    logfile "/usr/local/redis/sentinel.log"
    # 修改启动端口
    port 26379
    # 添加关闭保护模式
    protected-mode no
    # 修改sentinel monitor
    # sentinel monitor <master-name> <ip> <redis-port> <quorum>
    # macrog-master:监控主数据的名称,自定义即可.
    # 127.0.0.1:监控的主数据库的IP
    # 6379:监控的主数据库的端口
    # 2:最低通过票数
    sentinel monitor macrog-master 127.0.0.1  6379  2
    
    #依次修改7000,7001 配置
    
  3. 启动哨兵命令

    #在各个节点目录中
    redis-server sentinel.conf --sentinel
    
  4. 通过登入哨兵查看集群的信息

    redis-cli -p 26379
    sentinel master macrog-master//查看master的状态 
    sentinel slaves macrog-master //查看salves的状态
    sentinel sentinels macrog-master //查看哨兵的状态
    sentinel get-master-addr-by-name macrog-master //获取当前master的地址
    info sentinel //查看哨兵信息
    
  5. 通过kill掉redis主节点进程来模拟故障

    故障前
    在这里插入图片描述

    故障后
    在这里插入图片描述

    三. 哨兵缺点

        哨兵在发现master挂掉后会进行故障转移,也就是启动其中 一个slave为master,在这过程中,可能会导致数据丢失的情况,主要有异步复制导致的数据丢失和脑裂导致的数据丢失两种问题。还有哨兵在读写分离场景下,从节点故障会导致读服务不可用,需要我们对从节点做额外的监控、切换操作。此外,哨兵仍然没有解决写操作无法负载均衡、及存储能力受到单机限制的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值