zoukankan      html  css  js  c++  java
  • redis主从,哨兵集群

    准备工作:

    本文用的linux为centos6.5,redis为5.0.9在两台服务器

    redis安装请看https://www.cnblogs.com/fuanyu/p/14604919.html

    redis版本:5.0.9

    主:172.16.38.225:26379   ,sentinel:26380

    主:172.16.38.226:26379   ,sentinel:26380

    1. Redis主从同步

    Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。

    2. 配置主从同步

    Mater Slave的模式,从Slave向Master发起SYNC命令。

    可以是1 Master 多Slave,可以分层,Slave下可以再接Slave,可扩展成树状结构。

    2.1 配置Mater,Slave

    配置非常简单,只需在slave的设定文件中指定master的ip和port

    Master为225,slave为226

    在slave的redis.conf修改以下

    bind 0.0.0.0
    protected-mode no
    port 26379
    masterauth "123456"
    requirepass "123456"
    slaveof 172.16.38.225 26379 2

    也可以用命令行设定:

    在226那台上机执行命令

    redis 127.0.0.1:26379> slaveof 172.16.38.225  26379

    2.2 同期情况确认

    Master:

    127.0.0.1:26379> INFO replication
    # Replication
    role:master
    connected_slaves:1
    slave0:ip=172.16.38.225,port=26379,state=online,offset=309,lag=1

      

    Slave:

    127.0.0.1:26379> INFO replication
    # Replication
    role:slave
    master_host:172.16.38.225

    master_port:26379 master_link_status:up master_last_io_seconds_ago:7 master_sync_in_progress:0 slave_repl_offset:365 slave_priority:100 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0

    说明两边的redis是主从关系,在master里执行命令set mylove fu ;在slave里执行命令 get mylove;就会输出fu;

    2.3 哨兵配置

    因redis自己本来不能自己自动主从切换。此时需要sentinel哨兵来实现自动切换功能

    在两台机的sentinel.conf配置如下

    port 26380
    daemonize yes
    sentinel monitor mymaster 172.16.38.226 26379 1
    sentinel auth-pass mymaster 123456
    
    pidfile "/var/run/redis-sentinel.pid"
    logfile ""
    dir "/tmp"
    sentinel myid b8f2d588b37248b6adcd063914b470d3d2777899
    sentinel deny-scripts-reconfig yes
    
    sentinel config-epoch mymaster 114
    sentinel leader-epoch mymaster 114
    protected-mode no
    sentinel current-epoch 114
    
    sentinel known-replica mymaster 172.16.38.225 6380
    sentinel known-replica mymaster 172.16.38.225 26379
    sentinel known-sentinel mymaster 172.16.38.225 26380 8a34a71fab3e4cf6ce69d6854df9e651911a1e9a

    或者直接在复制/usr/local/redis/redis-5.0.9/sentinel.conf到/usr/local/redis/bin中主

    主要修改以下几个地方即可

    port 26380
    daemonize yes
    sentinel monitor mymaster 172.16.38.226 26379 2
    sentinel auth-pass mymaster 123456
    master和slave都配置好,分别启动sentinel
     ./redis-sentinel sentinel.conf 

    启动之后,分别在主从服务器上登录sentinel服务器,执行命令: info sentinel .看到status=ok就是正常的.如下图

    2.4。测试哨兵

    在master主服务器关掉redis

    命令:shutdown

    然后在slave从服务器查看redis的角色

    INFO replication

    大功告成,花了不少时间在这配置及测试。越努力越幸运。。。

    本文参考:

    https://www.cnblogs.com/ee900222/p/redis_2.html

    https://www.cnblogs.com/wiliamzhao/p/14201631.html

    https://www.cnblogs.com/zhonglongbo/p/13128955.html

    
    
    
  • 相关阅读:
    管道通讯
    C++类型转换
    自定义数组容器MyArray框架
    vue 转场动画
    身份证信息 获取年龄性别生日
    element ui +vue 输入 身份证号获取 性别 年龄 籍贯
    获取地理位置
    post 下载二进制pdf文件
    post 文件下载二进制流
    遍历对象的几中方法
  • 原文地址:https://www.cnblogs.com/fuanyu/p/14641014.html
Copyright © 2011-2022 走看看