• Linux下配置Redis的主从复制和主从切换


    一、为了实现高可用,一般生产环境使用的Redis都会做的主从复制和主从切换,而这些只需要做少许的配置即可完成。

    二、为了便于展示,在一台机器上完成主从复制和主从切换,所以就需要修改端口,多运行几个实例

      1、安装redis参考 ,即安装在:/usr/local/redis下,源码在:/usr/local/src/redis-4.0.9下

        Redis在linux下安装和测试

      2、复制主从配置文件和哨兵的配置文件

    # 主机节点配置
    cp /usr/local/src/redis-4.0.9/redis.conf /usr/local/redis/redis-master.conf
    # 从节点配置
    cp /usr/local/src/redis-4.0.9/redis.conf /usr/local/redis/redis-slave.conf
    # 三个哨兵节点配置
    cp /usr/local/src/redis-4.0.9/sentinel.conf /usr/local/redis/sentinel-1.conf
    cp /usr/local/src/redis-4.0.9/sentinel.conf /usr/local/redis/sentinel-2.conf
    cp /usr/local/src/redis-4.0.9/sentinel.conf /usr/local/redis/sentinel-3.conf

      3、修改配置文件

        a、修改主节点配置 redis-master.conf

    # 修改可以远程访问
    bind 0.0.0.0
    # 修改成保护模式可以不使用密码
    protected-mode no
    # 修改成后台启动
    daemonize yes
    # 修改数据存储为绝对路径
    dir /usr/local/redis/6379/

        b、修改从节点配置 redis-slave.conf

    # 修改端口,在用一个机器上6379已经被主节点占用
    port 6479
    # 修改可以远程访问
    bind 0.0.0.0
    # 修改成保护模式可以不使用密码
    protected-mode no
    # 修改成后台启动
    daemonize yes
    # 修改数据存储为绝对路径
    dir /usr/local/redis/6479/
    # 将文件名改成redis要启动的端口,如果安装多个redis
    pidfile /var/run/redis_6479.pid
    # 配置主节点ip和端口
    slaveof 127.0.0.1 6379

        c、修改哨兵配置  sentinel-1.conf

    # 修改成保护模式可以不使用密码
    protected-mode no
    # 修改成后台启动
    daemonize yes
    # 哨兵监控的master,集群名为mymaster,主节点的ip和端口,需要断定主节点死亡的哨兵数 
    sentinel monitor mymaster
    127.0.0.1 6379 2

    # master或slave多长时间(默认30秒)不能使用后标记为s_down状态。
    sentinel down
    -after-milliseconds mymaster 5000

    #若sentinel在该配置值内未能完成failover操作(即故障时master
    /slave自动切换),则认为本次failover失败。
    sentinel failover
    -timeout mymaster 18000

    #设置master和slaves验证密码,没有密码不需要
    # sentinel auth
    -pass mymaster 密码

    # 指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步
    sentinel parallel
    -syncs mymaster 1

        d、修改哨兵配置  sentinel-2.conf,和上一步配置一样,因为在同一台机器,需要修改下端口

    # 修改端口,在用一个机器上6379已经被主节点占用
    port 26479
    # 修改成后台启动
    daemonize yes
    # 修改成保护模式可以不使用密码
    protected-mode no

        e、修改哨兵配置  sentinel-3.conf,和上一步配置一样,因为在同一台机器,需要修改下端口

    # 修改端口,在用一个机器上6379已经被主节点占用
    port 26579
    # 修改成后台启动
    daemonize yes
    # 修改成保护模式可以不使用密码
    protected-mode no

      4、启动主从,启动哨兵

    # 创建redis数据存储目录
    mkdir /usr/local/redis/6379 /usr/local/redis/6479
    # 启动主从
    /usr/local/redis/bin/redis-server /usr/local/redis/redis-master.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/redis-slave.conf
    # 启动哨兵
    /usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel-1.conf
    /usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel-2.conf
    /usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel-3.conf

      5、查看启动状态

    #  通过哨兵查看集群的信息
    /usr/local/redis/bin/redis-cli -p 26379 info

      

      备注:redis哨兵集群可以监控多个主从,只需要保证集群名唯一即可。

      可以登录哨兵客户端使用,需要依次在集群中所有的sentinel节点执行以下命令,不然只有输入命令哨兵才会监听:

    # 登录客户端
    /usr/local/redis/bin/redis-cli -p 26379
    # 在客户端使用命令监听主节点
    sentinel monitor md-dev 127.0.0.1 6379 2
    # 删除
    sentinel remove md-dev

    yexiangyang

    moyyexy@gmail.com


  • 相关阅读:
    [noip2011d2t2]聪明的质检员 二分+前缀和优化
    [noip2016d2t2]蚯蚓
    KMP
    杨辉三角(二项式定理)&&组合数 【noip 2011/2016 d2t1】
    bzoj1615 [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
    [noip2015 pjt3]求和
    [周记]8.28~9.3
    [noip2011 d1t3] Mayan游戏
    react基础用法二(组件渲染)
    react基础用法一(在标签中渲染元素)
  • 原文地址:https://www.cnblogs.com/moy25/p/9478700.html
Copyright © 2020-2023  润新知