zoukankan      html  css  js  c++  java
  • redis 复制

    下载redis

    wget http://download.redis.io/releases/redis-5.0.5.tar.gz

    创建用户及目录

    groupadd redis
    useradd -g redis redis
    mkdir -p /u01/redis

    解压及安装

    gzip -d redis-5.0.5.tar 

    tar -xf redis-5.0.5.tar  -C /u01/redis

    cd /u01/redis/redis-5.0.5

    mkdir data log run

    make

    maie  install (root用户执行否则报错)

    redis 配置

    编辑 .bash_profile

    PATH=$PATH:$REDIS_HOME/bin:$HOME/bin:/usr/local/bin

    export PATH
    alias c='cd /u01/redis/redis-5.0.5'

    编辑redis.conf

    1        daemonize yes #后台启动
    2         port 7001 #修改端口号,从7001到7006
    3         maxmemory  100M   #设置最大内存
    4         maxmemory-policy  allkeys-lru #内存达到最大值时策略
    5         pidfile /u01/redis/redis-5.0.5/run/redis_7001.pid
    6         logfile /u01/redis/redis-5.0.5/log/7001.log
    7         dir /u01/redis/redis-5.0.5/data/7001
    8         appendonly yes

    复制redis.conf到对应的目录

    /u01/redis/redis-5.0.5/conf
    [redis@redis01 conf]$ ls
    7001 7002 7003 7004 redis.conf redis-sentinel-26379.conf

    [redis@redis01 conf]$ cd 7001
    [redis@redis01 7001]$ ls
    7001.conf nodes.conf

    编辑启动脚本

    [redis@redis01 ~]$ cat s.sh
    pkill -9 redis
    redis-server /u01/redis/redis-5.0.5/conf/7001/7001.conf
    redis-server /u01/redis/redis-5.0.5/conf/7002/7002.conf
    ps -ef|grep redis-server|grep -v grep

    在复制节点启动复制

    slaveof 192.168.20.201 7001

    启动日志如下

    1 9713:S 16 Sep 2019 13:28:34.459 * REPLICAOF 192.168.20.201:7001 enabled (user request from 'id=3 addr=192.168.20.202:33566 fd=9 name= age=107 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=48 qbuf-free=32720 obl=0 oll=0 omem=0 events=r cmd=slaveof') ---建立连接套接字
    2 9713:S 16 Sep 2019 13:28:35.309 * Connecting to MASTER 192.168.20.201:7001  --连接master
    3 9713:S 16 Sep 2019 13:28:35.310 * MASTER <-> REPLICA sync started
    4 9713:S 16 Sep 2019 13:28:35.310 * Non blocking connect for SYNC fired the event.
    5 9713:S 16 Sep 2019 13:28:35.310 * Master replied to PING, replication can continue...  --从节点发送ping命令返回
    6 9713:S 16 Sep 2019 13:28:35.312 * Trying a partial resynchronization (request ce82246b3aecfacf28105aba18eecbb7407e7679:1).
    7 9713:S 16 Sep 2019 13:28:35.314 * Full resync from master: 5ad71d8d15caad30b77a50fd6c22eaf088f936dd:0   --开始全量同步数据

    查看复制

    [redis@redis01 ~]$  redis-cli -h 192.168.20.201 -p 7001 info replication
    # Replication
    role:master
    connected_slaves:2
    slave0:ip=192.168.20.202,port=7003,state=online,offset=504,lag=0
    slave1:ip=192.168.20.202,port=7004,state=online,offset=504,lag=1
    master_replid:15fac3f45a2af5a4421a9906e7e1898abd6713d4
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:504
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:504
    [redis@redis01 ~]$  redis-cli -h 192.168.20.202 -p 7003 info replication
    # Replication
    role:slave
    master_host:192.168.20.201
    master_port:7001
    master_link_status:up
    master_last_io_seconds_ago:4
    master_sync_in_progress:0
    slave_repl_offset:560
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_replid:15fac3f45a2af5a4421a9906e7e1898abd6713d4
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:560
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:560
    

      这是正常情况下复制,如果在同步过程当中出现网络中断或者主机重启等可以用psync部分复制

    psync{runId}{offset},参数含义如下:
    ·runId:从节点所复制主节点的运行id。
    ·offset:当前从节点已复制的数据偏移量。
    

      

    redis@redis01 ~]$ redis-cli -h 192.168.20.201 -p 7001 info server|grep run
    run_id:92127d4880d2c7a4c5c6da3dcb73d584fc002817

    psync 92127d4880d2c7a4c5c6da3dcb73d584fc002817  -1
    

     优化

    如果RDB文件超过6GB以上时要格外小心。传输文件这一步操作非常耗时,需要加大repl-timeout所配置的值(默认60秒)

    停止同步

    192.168.20.202:7004> slaveof no one
    OK
    
    10701:S 16 Sep 2019 21:36:43.615 # CONFIG REWRITE executed with success.
    10701:S 16 Sep 2019 21:36:44.138 * Connecting to MASTER 192.168.20.202:7003
    10701:S 16 Sep 2019 21:36:44.138 * MASTER <-> REPLICA sync started
    10701:S 16 Sep 2019 21:36:44.138 * Non blocking connect for SYNC fired the event.
    10701:S 16 Sep 2019 21:36:44.139 * Master replied to PING, replication can continue...
    10701:S 16 Sep 2019 21:36:44.139 * Trying a partial resynchronization (request a32990ebbf807015eb5186ce88e049b1cae7cee9:4129548).
    10701:S 16 Sep 2019 21:36:44.141 * Full resync from master: e9e7b0c3af955da1330327c91c1ca8f7705fae6d:4127868
    10701:S 16 Sep 2019 21:36:44.142 * Discarding previously cached master state.
    10701:S 16 Sep 2019 21:36:44.239 * MASTER <-> REPLICA sync: receiving 256 bytes from master
    10701:S 16 Sep 2019 21:36:44.239 * MASTER <-> REPLICA sync: Flushing old data
    10701:S 16 Sep 2019 21:36:44.261 * MASTER <-> REPLICA sync: Loading DB in memory
    10701:S 16 Sep 2019 21:36:44.262 * MASTER <-> REPLICA sync: Finished with success
    10701:S 16 Sep 2019 21:36:44.264 * Background append only file rewriting started by pid 14688
    10701:S 16 Sep 2019 21:36:44.355 * AOF rewrite child asks to stop sending diffs.
    14688:C 16 Sep 2019 21:36:44.355 * Parent agreed to stop sending diffs. Finalizing AOF...
    14688:C 16 Sep 2019 21:36:44.355 * Concatenating 0.00 MB of AOF diff received from parent.
    14688:C 16 Sep 2019 21:36:44.403 * SYNC append only file rewrite performed
    14688:C 16 Sep 2019 21:36:44.404 * AOF rewrite: 8 MB of memory used by copy-on-write
    10701:S 16 Sep 2019 21:36:44.446 * Background AOF rewrite terminated with success
    10701:S 16 Sep 2019 21:36:44.446 * Residual parent diff successfully flushed to the rewritten AOF (0.00 MB)
    10701:S 16 Sep 2019 21:36:44.446 * Background AOF rewrite finished successfully
    

      

     

  • 相关阅读:
    Linux 终端管理工具,让终端管理更简单。这一期是【FinalShell】
    django添加检查用户名和手机号数量接口
    vue发送短信逻辑
    使用celery异步发送短信
    redis的pipline使用
    后端注册接口完善
    检查用户名是否使用接口
    celery配置与基本使用
    Celery介绍
    ubuntu开发机初始化
  • 原文地址:https://www.cnblogs.com/omsql/p/11528783.html
Copyright © 2011-2022 走看看