zoukankan      html  css  js  c++  java
  • Redis主从加Sentinel模式部署

    总体部署

    • 一主二从三哨兵
    • 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"

     参考

    https://redis.io/topics/sentinel

      插播个广告 


    老丈人家的粉皮儿,农产品,没有乱七八糟的添加剂,欢迎惠顾
     
  • 相关阅读:
    几种常用的曲线
    0188. Best Time to Buy and Sell Stock IV (H)
    0074. Search a 2D Matrix (M)
    0189. Rotate Array (E)
    0148. Sort List (M)
    0859. Buddy Strings (E)
    0316. Remove Duplicate Letters (M)
    0452. Minimum Number of Arrows to Burst Balloons (M)
    0449. Serialize and Deserialize BST (M)
    0704. Binary Search (E)
  • 原文地址:https://www.cnblogs.com/dupang/p/6414365.html
Copyright © 2011-2022 走看看