zoukankan      html  css  js  c++  java
  • Redis的复制(Master/Slave)、主从复制、读写分离 (下)

    哨兵模式(就是反客为主的自动版)

      能够自动监控主机是否故障,如果故障了根据投票数自动将从机变成主机

      1创建哨兵文件

    touch sentinel.conf
    [root@localhost myredis]# ls -l
    总用量 228
    -rw-r--r--. 1 root root    55 7月  31 23:38 dump6379.rdb
    -rw-r--r--. 1 root root    55 7月  31 23:38 dump6380.rdb
    -rw-r--r--. 1 root root 41642 8月   1 08:33 redis6379.conf
    -rw-r--r--. 1 root root 41642 7月  31 23:04 redis6380.conf
    -rw-r--r--. 1 root root 41642 7月  31 23:11 redis6381.conf
    -rw-r--r--. 1 root root 41612 7月  31 18:08 redis_aof.conf
    -rw-r--r--. 1 root root 41611 7月  28 21:27 redis.conf
    -rw-r--r--. 1 root root     0 8月   1 09:47 sentinel.conf

      2、给哨兵文件添加监听内容

    sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1:这里的这个数字1,表示主机死掉以后slaver投票看让谁接替称为主机,谁票数多多谁是主机。

    sentinel monitor host6379 127.0.0.1 6379 1

      3、启动哨兵

    [root@localhost myredis]# redis-sentinel /myredis/sentinel.conf 
    22600:X 01 Aug 09:55:20.908 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                    _._                                                  
               _.-``__ ''-._                                             
          _.-``    `.  `_.  ''-._           Redis 3.0.7 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._                                   
     (    '      ,       .-`  | `,    )     Running in sentinel mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
     |    `-._   `._    /     _.-'    |     PID: 22600
      `-._    `-._  `-./  _.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |           http://redis.io        
      `-._    `-._`-.__.-'_.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |                                  
      `-._    `-._`-.__.-'_.-'    _.-'                                   
          `-._    `-.__.-'    _.-'                                       
              `-._        _.-'                                           
                  `-.__.-'                                               
    
    22600:X 01 Aug 09:55:20.910 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
    22600:X 01 Aug 09:55:20.910 # Sentinel runid is 31cfb89ac4fe6085784e0541972261ff7f09f339
    22600:X 01 Aug 09:55:20.910 # +monitor master host6379 127.0.0.1 6379 quorum 1
    22600:X 01 Aug 09:55:20.912 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ host6379 127.0.0.1 6379
    22600:X 01 Aug 09:55:20.914 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ host6379 127.0.0.1 6379

      4、主机关闭,哨兵会自动选举出主机

    127.0.0.1:6380> info replication
    # Replication
    role:master
    connected_slaves:1
    slave0:ip=127.0.0.1,port=6381,state=online,offset=1116,lag=0
    master_repl_offset:1116
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:2
    repl_backlog_histlen:1115
    127.0.0.1:6380> set k44 444
    OK
    127.0.0.1:6381> info replication
    # Replication
    role:slave
    master_host:127.0.0.1
    master_port:6380
    master_link_status:up
    master_last_io_seconds_ago:2
    master_sync_in_progress:0
    slave_repl_offset:4098
    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
    127.0.0.1:6381> get k44
    "444"

      5、前面主机回来(前主机作为Slaver)

    127.0.0.1:6379> info replication
    # Replication
    role:slave
    master_host:127.0.0.1
    master_port:6380
    master_link_status:up
    master_last_io_seconds_ago:2
    master_sync_in_progress:0
    slave_repl_offset:19636
    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
    127.0.0.1:6379> get k44
    "444"
  • 相关阅读:
    Java单例模式深入详解
    深入理解Java的接口和抽象类
    java中为什么要给类使用代理?它有哪些好处?
    Log4j--java日志
    Log4j rootLogger配置
    selenium之 下拉选择框Select
    关于弹框
    spring controller接口中,用pojo对象接收页面传递的参数,发现spring在对pojo对象赋值时,有一定顺序的问题
    navicat mysql报错误:2013 Lost connection to MySQL server during query
    记录一次mysql导入千万条测试数据过慢的问题!
  • 原文地址:https://www.cnblogs.com/karrya/p/11281173.html
Copyright © 2011-2022 走看看