zoukankan      html  css  js  c++  java
  • 主从复制配置

    应用示例:

        这里我们假设Master-Slave已经建立。
        #启动master服务器。
        [root@Stephen-PC redis]# redis-cli -p 6379
        redis 127.0.0.1:6379>
        #情况Master当前数据库中的所有Keys。
        redis 127.0.0.1:6379> flushdb
        OK
        #在Master中创建新的Keys作为测试数据。
        redis 127.0.0.1:6379> set mykey hello
        OK
        redis 127.0.0.1:6379> set mykey2 world
        OK
        #查看Master中存在哪些Keys。
        redis 127.0.0.1:6379> keys *
        1) "mykey"
        2) "mykey2"
        
        #启动slave服务器。
        [root@Stephen-PC redis]# redis-cli -p 6380
        #查看Slave中的Keys是否和Master中一致,从结果看,他们是相等的。
        redis 127.0.0.1:6380> keys *
        1) "mykey"
        2) "mykey2"
        
        #在Master中删除其中一个测试Key,并查看删除后的结果。
        redis 127.0.0.1:6379> del mykey2
        (integer) 1
        redis 127.0.0.1:6379> keys *
        1) "mykey"
        
        #在Slave中查看是否mykey2也已经在Slave中被删除。
        redis 127.0.0.1:6380> keys *
        1) "mykey"





    redis主从复制配置:
        环境:Linux一台(192.168.6.205)、redis端口分别为6379、6370
        安装好redis之后我的测试目录是这样的:

    1
    2
    3
    4
    [root@web01 redis]# pwd
    /usr/local/redis
    [root@web01 redis]# ls
    master  master-redis-2.8.1  slave  slave-redis-2.8.1
        master、slave是我新建的一个目录,下面分别是bin、ect目录用来存放各自的redis命令和配置文件
    1
    2
    3
    4
    [root@web01 bin]# pwd
    /usr/local/redis/master/bin
    [root@web01 bin]# ls
    dump.rdb  mkreleasehdr.sh  redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-sentinel redis-server
     
    1
    2
    3
    4
    [root@web01 etc]# pwd
    /usr/local/redis/master/etc
    [root@web01 etc]# ls
    master-redis.conf
     
    1
    2
    3
    4
    [root@web01 bin]# pwd
    /usr/local/redis/slave/bin
    [root@web01 bin]# ls
    dump.rdb  mkreleasehdr.sh  redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-sentinel redis-server
     
    1
    2
    3
    4
    [root@web01 etc]# pwd
    /usr/local/redis/slave/etc
    [root@web01 etc]# ls
    slave-redis.conf
        /usr/local/bin:
    1
    2
    3
    4
    [root@web01 redis]# pwd
    /usr/local/bin/redis
    [root@web01 redis]# ls
    master  slave
        配置:主服务没动,只在slave的配置文件中修改# slaveof <masterip> <masterport>为master所在的ip 和端口,如:   
    1
    2
    3
    4
    [root@web01 master]# cd /usr/local/redis/slave/etc/
    [root@web01 etc]# vi slave-redis.conf
    # slaveof <masterip> <masterport>
    slaveof 192.168.6.205 6379

    启动master:

    1
    2
    3
    4
    [root@web01 etc]# ps -ef |grep redis
    root      6830  5985  0 13:54 pts/2    00:00:00 grepredis
    [root@web01 bin]# cd /usr/local/redis/master/bin/
    [root@web01 bin]# ./redis-server /usr/local/redis/master/etc/master-redis.conf
    连接master:
    1
    2
    3
    4
    5
    6
    [root@web01 bin]# ./redis-cli
    127.0.0.1:6379> keys *
    1) "aaaaaaaaaaa"
    2) "security"
    3) "mm"
    4) "a"
    查看master连接信息: 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    127.0.0.1:6379> info
    ...
    config_file:/usr/local/redis/master/etc/master-redis.conf
    # Clients
    connected_clients:1
    client_longest_output_list:0
    client_biggest_input_buf:0
    blocked_clients:0
     
    # Replication
    role:master
    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 role为master 

    启动slave:

    1
    2
    [root@web01 bin]# cd /usr/local/redis/slave/bin/
    [root@web01 bin]# ./redis-server /usr/local/redis/slave/etc/slave-redis.conf
    连接slave:
    1
    2
    3
    4
    5
    6
    [root@web01 bin]# ./redis-cli -p 6370
    127.0.0.1:6370> keys *
    1) "mm"
    2) "a"
    3) "security"
    4) "aaaaaaaaaaa"
    可以看到该连接信息为:127.0.0.1:6370>,master的数据已经被同步过来了。 
    ./redis-cli 该客户端默认连接的端口号为6379,可以通过-p指定端口,-h指定主机。

    查看进程可以看到已经有两个redis服务在运行

    1
    2
    3
    4
    [root@web01 bin]# ps -ef |grep redis
    root      6835     1  0 13:56 ?        00:00:00 ./redis-server*:6379        
    root      6866     1  0 14:01 ?        00:00:00 ./redis-server*:6370        
    root      6895  4071  0 14:05 pts/1    00:00:00 grepredis

    查看slave连接信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    127.0.0.1:6370> info
    ...
    config_file:/usr/local/redis/slave/etc/slave-redis.conf
    ...
    # Replication
    role:slave
    master_host:192.168.6.205
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:3
    master_sync_in_progress:0
    slave_repl_offset:463
    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 role为slave, master_port为6379,master_host:192.168.6.205,master_link_status:up 
  • 相关阅读:
    php 获取当前目录和当前文件夹
    学习笔记12(选做)
    学习笔记11
    OpenEuler 中C与汇编的混合编程
    OpenEuler中C语言中的函数调用测试
    学习笔记10
    电子公文传输系统验收3开发环境
    电子公文传输系统验收2功能测试
    socket编程
    socket课堂
  • 原文地址:https://www.cnblogs.com/lsx1993/p/4633026.html
Copyright © 2011-2022 走看看