zoukankan      html  css  js  c++  java
  • Redis一主二从三哨兵配置(模拟3台服务器)

    redis一主二从+三哨兵配置


    1.创建虚拟机

    使用VM创建3台虚拟机

    • ip:192.168.81.129
    • ip:192.168.81.130
    • ip:192.168.81.131

    2安装redis服务

    > 注意: > > 如果您使用 Redis 5 或更高版本,这很容易实现,因为我们在 Redis Cluster 命令行实用程序的帮助下嵌入到 中redis-cli,可用于创建新集群、检查或重新分片现有集群等。 > 对于 Redis 版本 3 或 4,有一个redis-trib.rb非常相似的旧工具。您可以src在Redis源代码分发目录中找到它。您需要安装redisgem 才能运行redis-trib.

    2.1 安装环境

    yum -y install gcc-c++
    

    2.2 获取压缩包

    wget http://download.redis.io/releases/redis-5.0.6.tar.gz
    

    2.3 解压 安装(依次执行)

    `tar -zxvf redis-5.0.6.tar.gz`
    `cd redis-5.0.6`
    `make`
    

    2.4 启动redis服务

    `./src/redis-server redis.conf`
    

    3.配置redis文件

    主库配置

    1.修改redis配置文件:
    /etc/redis.conf
    2.修改绑定ip为服务器内网ip地址,做绑定,三台各自填写各自的ip地址
    bind 0.0.0.0
    2.保护模式修改为否,允许远程连接
    protected-mode no
    3.设定密码
    requirepass "123456"
    4.设定主库密码与当前库密码同步,保证从库能够提升为主库
    masterauth "123456"
    5.打开AOF持久化支持
    appendonly yes

    从配置

    跟主配置一样,但是从配置的bind不变,其他一样
    添加 slaveof 192.168.81.129 6379

    出现链接失败的问题

    启动: systemctl start firewalld  
    关闭: systemctl stop firewalld  
    查看状态: systemctl status firewalld   
    开机禁用  : systemctl disable firewalld  
    开机启用  : systemctl enable firewalld  
    
    最后将住服务器上的redis.conf中的bind127.0.0.1修改为0.0.0.0让所有的ip能够连接
    
    

    链接成功

    info replication   
    Replication   
    role:master  
    connected_slaves:2
    slave0:ip=192.168.81.130,port=6379,state=online,offset=1548,lag=0
    slave1:ip=192.168.81.131,port=6379,state=online,offset=1548,lag=0
    master_replid:582a050fb3454f72b98147b4b2fa14e6802f32a1
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:1562
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:1562
    

    4.配置sentinel 3个哨兵

    1.主机配置 在192.168.81.129中配置,找到src/sentinel.conf

    • 端口
      port 26379
    • 保护模式
      protected-mode no
    • 守护进程
      daemonize yes
    • 设置master和slaves的密码
      sentinel auth-pass mymaster 123456
    • master或slave多长时间(默认30秒)不能使用后标记为s_down状态
      sentinel down-after-milliseconds mymaster 30000
    • 选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。
      sentinel parallel-syncs mymaster 1
    • 若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败
      sentinel failover-timeout mymaster 180000

    2.从机配置192.168.81.130和192.168.81.131 找到 src/sentinel.conf
    主要添加
    sentinel monitor mymaster 192.168.81.129 6379 2
    其次
    192.168.81.130 中port 26380
    192.168.81.131 中port 26381
    其他与上面主机一直

    注意

    这两个顺序不能反
    sentinel auth-pass mymaster 123456
    sentinel down-after-milliseconds mymaster 30000

    3.1启动
    ./src/redis-sentinel sentinel.conf

    5.配置完成查看效果

    1.启动顺序

    主机redis服务-> 从机redis服务 -> sentinel

    2.查看

    • 192.168.81.129 使用 info replication 命令

    • role:master //角色为mster
      connected_slaves:2//用2个从机
      slave0:ip=192.168.81.130,port=6379,state=online,offset=50440,lag=1
      slave1:ip=192.168.81.131,port=6379,state=online,offset=50440,lag=1
      master_replid:430220134be5b3ffb3951e089e1cb075b04a3aba
      master_replid2:90a93c7fdc2f9ea732f8813cb71c548f1789ddee
      master_repl_offset:50726
      second_repl_offset:35186
      repl_backlog_active:1
      repl_backlog_size:1048576
      repl_backlog_first_byte_offset:1
      repl_backlog_histlen:50726

    • 192.168.81.130 使用 info replication 命令

    • role:slave //角色为子节点
      master_host:192.168.81.129
      master_port:6379
      master_link_status:up
      master_last_io_seconds_ago:1
      master_sync_in_progress:0
      slave_repl_offset:132768
      slave_priority:100
      slave_read_only:1
      connected_slaves:0
      master_replid:430220134be5b3ffb3951e089e1cb075b04a3aba
      master_replid2:0000000000000000000000000000000000000000
      master_repl_offset:132768
      second_repl_offset:-1
      repl_backlog_active:1
      repl_backlog_size:1048576
      repl_backlog_first_byte_offset:46506
      repl_backlog_histlen:86263

    • 192.168.81.131 使用 info replication 命令

    • role:slave //角色为子节点
      master_host:192.168.81.129
      master_port:6379
      master_link_status:up
      master_last_io_seconds_ago:0
      master_sync_in_progress:0
      slave_repl_offset:152485
      slave_priority:100
      slave_read_only:1
      connected_slaves:0
      master_replid:430220134be5b3ffb3951e089e1cb075b04a3aba
      master_replid2:0000000000000000000000000000000000000000
      master_repl_offset:152485
      second_repl_offset:-1
      repl_backlog_active:1
      repl_backlog_size:1048576
      repl_backlog_first_byte_offset:47258
      repl_backlog_histlen:105228

    3.在主机中加入一个值,会同步到从机中

    等待几分钟即可

    4.关闭主节点,会发现主节点会自动选举、

    再次查询

    • 192.168.81.130 使用 info replication 命令

    • 发现130变为主机

      role:master//主节点
      connected_slaves:1
      slave0:ip=192.168.81.131,port=6379,state=online,offset=1755291,lag=0
      master_replid:153af2e4d7632095b16c1dc153d08f51c97dbdca
      master_replid2:430220134be5b3ffb3951e089e1cb075b04a3aba
      master_repl_offset:1755291
      second_repl_offset:1751237
      repl_backlog_active:1
      repl_backlog_size:1048576
      repl_backlog_first_byte_offset:706716
      repl_backlog_histlen:1048576

    • 192.168.81.131 使用 info replication 命令

    • 131未变

    • role:slave
      master_host:192.168.81.130
      master_port:6379
      master_link_status:up
      master_last_io_seconds_ago:0
      master_sync_in_progress:0
      slave_repl_offset:1753847
      slave_priority:100
      slave_read_only:1
      connected_slaves:0
      master_replid:153af2e4d7632095b16c1dc153d08f51c97dbdca
      master_replid2:430220134be5b3ffb3951e089e1cb075b04a3aba
      master_repl_offset:1753847
      second_repl_offset:1751237
      repl_backlog_active:1
      repl_backlog_size:1048576
      repl_backlog_first_byte_offset:705272
      repl_backlog_histlen:1048576

    6.结束

    如有不同请仔细检查配置

  • 相关阅读:
    java中的object类
    java中super的使用
    java中final的使用
    java中的继承初始化顺序
    java中的方法重写
    springMVC的流程
    dubbo与zookeeper
    java的几种常见数据结构
    集合框架之List和Set区别
    集合框架
  • 原文地址:https://www.cnblogs.com/wsycoo/p/15010587.html
Copyright © 2011-2022 走看看