zoukankan      html  css  js  c++  java
  • redis 一主二从三哨兵

    总体部署

    • 一主二从三哨兵
    • ip地址分配分别为
    1. 主 127.0.0.1:6379
    2. 从 127.0.0.1:6389
    3. 从 127.0.0.1:6399
    4. 哨兵 127.0.0.1:26379
    5. 哨兵 127.0.0.1:26389
    6. 哨兵 127.0.0.1:26399

    一主二从的配置文件 redis.conf设置

    主的保持默认的不变

    二个从的分别打开配置文件

    找到设置端口的地方

    分别设置为 6389 和6399

    # Accept connections on the specified port, default is 6379 (IANA #815344).
    # If port 0 is specified Redis will not listen on a TCP socket.
    port 6389
    # Accept connections on the specified port, default is 6379 (IANA #815344).
    # If port 0 is specified Redis will not listen on a TCP socket.
    port 6399

    然后都在

    # slaveof <masterip> <masterport>

    一行的下面增加

    slaveof 127.0.0.1 6379

    这样主从的配置就ok了

    三个哨兵的sentinel.conf配置

    分别打开sentinel.conf配置文件

    修改他们的端口为

     26379 26389 26399

    sentinel monitor mymaster 127.0.0.1 6379 2

    配置中的这一行表示 我们要监视的主的ip和端口,mymaster是主的名称,因为我们的主是127.0.0.1:6379,所以三个哨兵中的这个地方都不用修改。

    然后所有的配置就ok了,本地测试环境貌似需要改动的地方不多。

    启动

    进入src目录

    ./redis-server ../redis.conf

    复制代码
    25496:M 18 Feb 21:43:12.616 * Increased maximum number of open files to 10032 (it was originally set to 4864).
                    _._
               _.-``__ ''-._
          _.-``    `.  `_.  ''-._           Redis 3.2.8 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 25496
      `-._    `-._  `-./  _.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |           http://redis.io
      `-._    `-._`-.__.-'_.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |
      `-._    `-._`-.__.-'_.-'    _.-'
          `-._    `-.__.-'    _.-'
              `-._        _.-'
                  `-.__.-'
    
    25496:M 18 Feb 21:43:12.618 # Server started, Redis version 3.2.8
    25496:M 18 Feb 21:43:12.618 * DB loaded from disk: 0.000 seconds
    25496:M 18 Feb 21:43:12.618 * The server is now ready to accept connections on port 6379
    25496:M 18 Feb 21:43:21.196 * Slave 127.0.0.1:6389 asks for synchronization
    25496:M 18 Feb 21:43:21.196 * Full resync requested by slave 127.0.0.1:6389
    25496:M 18 Feb 21:43:21.196 * Starting BGSAVE for SYNC with target: disk
    25496:M 18 Feb 21:43:21.197 * Background saving started by pid 25498
    25498:C 18 Feb 21:43:21.198 * DB saved on disk
    25496:M 18 Feb 21:43:21.198 * Background saving terminated with success
    25496:M 18 Feb 21:43:21.198 * Synchronization with slave 127.0.0.1:6389 succeeded
    25496:M 18 Feb 21:43:28.979 * Slave 127.0.0.1:6399 asks for synchronization
    25496:M 18 Feb 21:43:28.979 * Full resync requested by slave 127.0.0.1:6399
    25496:M 18 Feb 21:43:28.979 * Starting BGSAVE for SYNC with target: disk
    25496:M 18 Feb 21:43:28.980 * Background saving started by pid 25500
    25500:C 18 Feb 21:43:28.986 * DB saved on disk
    25496:M 18 Feb 21:43:29.044 * Background saving terminated with success
    25496:M 18 Feb 21:43:29.044 * Synchronization with slave 127.0.0.1:6399 succeeded
    复制代码
    •  从1

    进入src目录

    ./redis-server ../redis.conf

    复制代码
    25497:S 18 Feb 21:43:21.194 * Increased maximum number of open files to 10032 (it was originally set to 4864).
                    _._
               _.-``__ ''-._
          _.-``    `.  `_.  ''-._           Redis 3.2.8 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6389
     |    `-._   `._    /     _.-'    |     PID: 25497
      `-._    `-._  `-./  _.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |           http://redis.io
      `-._    `-._`-.__.-'_.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |
      `-._    `-._`-.__.-'_.-'    _.-'
          `-._    `-.__.-'    _.-'
              `-._        _.-'
                  `-.__.-'
    
    25497:S 18 Feb 21:43:21.196 # Server started, Redis version 3.2.8
    25497:S 18 Feb 21:43:21.196 * DB loaded from disk: 0.000 seconds
    25497:S 18 Feb 21:43:21.196 * The server is now ready to accept connections on port 6389
    25497:S 18 Feb 21:43:21.196 * Connecting to MASTER 127.0.0.1:6379
    25497:S 18 Feb 21:43:21.196 * MASTER <-> SLAVE sync started
    25497:S 18 Feb 21:43:21.196 * Non blocking connect for SYNC fired the event.
    25497:S 18 Feb 21:43:21.196 * Master replied to PING, replication can continue...
    25497:S 18 Feb 21:43:21.196 * Partial resynchronization not possible (no cached master)
    25497:S 18 Feb 21:43:21.197 * Full resync from master: b17cd8764974c68bedacb2e5927a04e9ff15f7df:1
    25497:S 18 Feb 21:43:21.198 * MASTER <-> SLAVE sync: receiving 108 bytes from master
    25497:S 18 Feb 21:43:21.198 * MASTER <-> SLAVE sync: Flushing old data
    25497:S 18 Feb 21:43:21.198 * MASTER <-> SLAVE sync: Loading DB in memory
    25497:S 18 Feb 21:43:21.199 * MASTER <-> SLAVE sync: Finished with success
    复制代码
    • 从2

    进入src目录

    ./redis-server ../redis.conf

    复制代码
    25499:S 18 Feb 21:43:28.975 * Increased maximum number of open files to 10032 (it was originally set to 4864).
                    _._
               _.-``__ ''-._
          _.-``    `.  `_.  ''-._           Redis 3.2.8 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6399
     |    `-._   `._    /     _.-'    |     PID: 25499
      `-._    `-._  `-./  _.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |           http://redis.io
      `-._    `-._`-.__.-'_.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |
      `-._    `-._`-.__.-'_.-'    _.-'
          `-._    `-.__.-'    _.-'
              `-._        _.-'
                  `-.__.-'
    
    25499:S 18 Feb 21:43:28.977 # Server started, Redis version 3.2.8
    25499:S 18 Feb 21:43:28.977 * DB loaded from disk: 0.000 seconds
    25499:S 18 Feb 21:43:28.977 * The server is now ready to accept connections on port 6399
    25499:S 18 Feb 21:43:28.979 * Connecting to MASTER 127.0.0.1:6379
    25499:S 18 Feb 21:43:28.979 * MASTER <-> SLAVE sync started
    25499:S 18 Feb 21:43:28.979 * Non blocking connect for SYNC fired the event.
    25499:S 18 Feb 21:43:28.979 * Master replied to PING, replication can continue...
    25499:S 18 Feb 21:43:28.979 * Partial resynchronization not possible (no cached master)
    25499:S 18 Feb 21:43:28.980 * Full resync from master: b17cd8764974c68bedacb2e5927a04e9ff15f7df:15
    25499:S 18 Feb 21:43:29.044 * MASTER <-> SLAVE sync: receiving 108 bytes from master
    25499:S 18 Feb 21:43:29.045 * MASTER <-> SLAVE sync: Flushing old data
    25499:S 18 Feb 21:43:29.045 * MASTER <-> SLAVE sync: Loading DB in memory
    25499:S 18 Feb 21:43:29.045 * MASTER <-> SLAVE sync: Finished with success
    复制代码
    • 哨兵1

    进入src目录

     ./redis-sentinel ../sentinel.conf

    复制代码
    25501:X 18 Feb 21:43:35.300 * Increased maximum number of open files to 10032 (it was originally set to 4864).
                    _._
               _.-``__ ''-._
          _.-``    `.  `_.  ''-._           Redis 3.2.8 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._
     (    '      ,       .-`  | `,    )     Running in sentinel mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
     |    `-._   `._    /     _.-'    |     PID: 25501
      `-._    `-._  `-./  _.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |           http://redis.io
      `-._    `-._`-.__.-'_.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |
      `-._    `-._`-.__.-'_.-'    _.-'
          `-._    `-.__.-'    _.-'
              `-._        _.-'
                  `-.__.-'
    
    25501:X 18 Feb 21:43:35.301 # Sentinel ID is 6f3360c06cafe7807e2c1ae00fe7c791354b8b24
    25501:X 18 Feb 21:43:35.301 # +monitor master mymaster 127.0.0.1 6379 quorum 2
    复制代码
    • 哨兵2和哨兵3启动过程相同

    验证

    新开一个命令行窗口进入redis的src目录,用redis-cli工具登录其中一个哨兵

    ./redis-cli -p 26379

    连接成功后运行如下命令

    sentinel master mymaster

    结果如下

    复制代码
    127.0.0.1:26379> sentinel master mymaster
     1) "name"
     2) "mymaster"
     3) "ip"
     4) "127.0.0.1"
     5) "port"
     6) "6379"
     7) "runid"
     8) "b17cd8764974c68bedacb2e5927a04e9ff15f7df"
     9) "flags"
    10) "master"
    11) "link-pending-commands"
    12) "0"
    13) "link-refcount"
    14) "1"
    15) "last-ping-sent"
    16) "0"
    17) "last-ok-ping-reply"
    18) "703"
    19) "last-ping-reply"
    20) "703"
    21) "down-after-milliseconds"
    22) "30000"
    23) "info-refresh"
    24) "1090"
    25) "role-reported"
    26) "master"
    27) "role-reported-time"
    28) "3253725"
    29) "config-epoch"
    30) "0"
    31) "num-slaves"
    32) "2"
    33) "num-other-sentinels"
    34) "2"
    35) "quorum"
    36) "2"
    37) "failover-timeout"
    38) "180000"
    39) "parallel-syncs"
    40) "1"
  • 相关阅读:
    hadoop
    spark
    docfetcher
    redis参考资料
    Redis系列-存储篇sorted set主要操作函数小结
    predis操作大全
    composer安装使用
    寒假作业2
    寒假作业随笔
    面向对象寒假作业编程题
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/7940458.html
Copyright © 2011-2022 走看看