zoukankan      html  css  js  c++  java
  • [redis] linux下主从篇(2)

    一.前言
    1.为何要主从架构
    避免单机故障,主服务器挂掉后,还可以手动切换从服务为主服务继续工作,保持缓存数据完整。

    2.主从同步的原理步骤
    从服务器连接主服务器,发送SYNC命令;
    主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
    主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
    从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
    主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
    从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

    二.配置主从

      1.环境说明

      系统基于CentOS-6.7-x86_64-minimal.iso,源码安装包redis-3.2.4版本,官方说明主从架构最好2.8版本以上

    master  192.168.56.102:6379 host102
    slave   192.168.56.103:6379 host103
    

      2.关闭防火墙、selinux

    #主从两台都操作
    [root@host102 ~]# /etc/init.d/iptables stop
    [root@host102 ~]# setenforce 0
    [root@host102 ~]# chkconfig iptables off
    [root@host102 ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    

      3.redis配置文件

    #master端配置
    #复制一份默认的配置文件再修改以下个地方
    [root@host102 ~]# cp /usr/local/src/redis-3.2.4/redis.conf /etc/redis/6379.conf
    [root@host102 ~]# vim /etc/redis/6379.conf
    bind 0.0.0.0                      #监控地址
    daemonize yes                     #dameon形式运行
    pidfile /var/run/redis_6379.pid   #pid文件
    logfile "/var/log/redis_6379.log" #启动日志
    dbfilename dump.rdb               #数据文件
    dir /var/lib/redis                #数据目录
    requirepass mima                  #配置连接密码
    

      

    #slave端配置
    [root@host103 ~]# vim /etc/redis/6379.conf
    bind 0.0.0.0                      #监控地址
    daemonize yes                     #dameon形式运行
    pidfile /var/run/redis_6379.pid   #pid文件
    logfile "/var/log/redis_6379.log" #启动日志
    dbfilename dump.rdb               #数据文件
    dir /var/lib/redis                #数据目录
    requirepass mima                  #配置连接密码
    slaveof 192.168.56.102 6379       #指定master
    masterauth mima                   #slave认证master密码
    slave-read-only yes               #设置slave为只读模式
    

      4.启动服务测试读写

    #启动服务
    #master端
    [root@host102 redis]# /usr/local/redis/bin/redis-server /etc/redis/6379.conf 
    #slave端
    [root@host103 redis]# /usr/local/redis/bin/redis-server /etc/redis/6379.conf 
    

      5.测试读写

    #master端
    [root@host102 ~]# /usr/local/redis/bin/redis-cli -a mima
    127.0.0.1:6379> set name john
    OK
    127.0.0.1:6379> get name
    "john"
    127.0.0.1:6379> info replication
    # Replication
    role:master
    connected_slaves:1
    slave0:ip=192.168.56.103,port=6379,state=online,offset=239,lag=0
    master_repl_offset:239
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:2
    repl_backlog_histlen:238
    #slave端
    [root@host103 redis]# /usr/local/redis/bin/redis-cli -a mima
    127.0.0.1:6379> keys *
    1) "name"
    127.0.0.1:6379> get name
    "john"
    127.0.0.1:6379> set age 28
    (error) READONLY You can't write against a read only slave.
    127.0.0.1:6379> info replication
    # Replication
    role:slave
    master_host:192.168.56.102
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:9
    master_sync_in_progress:0
    slave_repl_offset:309
    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
  • 相关阅读:
    xcodebuild changed some of the values
    ar和nm命令的使用(转载)
    POJ 3678 Katu Puzzle (2SAT)
    ZOJ 3664 Split the Rectangle 第37届ACM/ICPC长春赛区现场赛 J 题(模拟建树,暴力 求LCA)
    HDU 4115 Eliminate the Conflict (2SAT)
    ZOJ 3665 Yukari's Birthday 第37届ACM/ICPC长春赛区现场赛K题 (水题,枚举,二分)
    ZOJ 3662 Math Magic 第37届ACM/ICPC长春赛区H题(DP)
    【原创】2012ACM长春赛区现场赛总结
    ZOJ 3656 Bit Magic 第37届ACM/ICPC长春赛区现场赛B题 (2SAT)
    ZOJ 3657 The Little Girl who Picks Mushrooms 第37届ACM/ICPC长春赛区现场赛C题(水题)
  • 原文地址:https://www.cnblogs.com/hjfeng1988/p/6143766.html
Copyright © 2011-2022 走看看