zoukankan      html  css  js  c++  java
  • Redis配置主从架构,实现读写分离

    Redis的主从架构,能帮助我们实现读多,写少的情况,下面配置Redis架构,很简单。

    准备环境 vmware + rhel-server-7.0(101,102,103)+redis-3.2.0

    1、在192.168.137.101安装好redis3.2.0,我安装的目录如下

    2、通过ssh将redis文件夹copy到102和103的Linux

    scp -rf redis/ root@192.168.137.102:/home/redis
    scp -rf redis/ root@192.168.137.103:/home/redis

    102,103的redis目录如下,说明copy成功

    3、配置master和slave关系,有如下俩种方式

    a) 在redis.conf中设置slaveof,永久性

    slaveof <masterip> <masterport>

    b)使用redis-cli客户端设置redis服务,暂时,redis重启失效

    slaveof <masterip> <masterport>

    在102和103的conf/redis.conf的配置文件配置为101的slave关系

    master的密码可以直接在配置文件里面配置

    默认配置文件绑定了本地ip,该配置会导致,其他ip登录被拒绝,所以会导致主从同步失败,我们把它注释掉

    4、查看设置情况,使用如下命令

    info replication

    101的主从关系,可以看slaves的连接数还有ip地址,端口

    102,103的主从关系,可以看master]的ip地址,端口

    若发现配置没有问题,但是master_link_status一直是down,connected_slaves一直是0,查找下,是不是三个ip之间不能拼通,如果能拼通,查看下端口是否能拼通,可以在windows上通过telnet

    telnet 192.168.137.101 6379

    如果发现不能拼通,修改下配置文件,将

    bind 127.0.0.1

    注释掉,重启服务,再试试,参考下http://www.cnblogs.com/liuyansheng/p/6531034.html

    5、测试是否数据同步

    在master设置一个key和value

    在101和102上分别get数据

    说明数据同步成功,接下来把102down掉,再重启,然后get数据

    说明数据恢复成功,另外也说明在主从结构中,slave不能写数据

    主从复制的步骤:

    1、从服务器开始链接主服务器时,会向主服务器发送一个 SYNC 命令 
    2、主服务接收到命令之后,执行 BGSAVE,异步的将写命令保存到一个缓冲区里面 
    3、主服务器执行完BGSAVE之后,就.rdb 文件(BOF的持久化文件)发送给从服务器,从服务器从该文件恢复数据到内存中 
    4、主服务器还会以 Redis 命令协议的格式, 将写命令缓冲区中积累的所有内容都发送给从服务器,从服务器通过执行命令将数据恢复到内存中

  • 相关阅读:
    servlet多线程同步问题
    servlet之request
    servlet方法
    非静态内部类不能有静态成员
    接口与抽象类的区别
    枚举
    Install CUDA 6.0 on Ubuntu 14.04 LTS
    Introduction to Deep Learning Algorithms
    codeblocks 使用汇总
    矩阵奇异值分解(SVD)及其应用
  • 原文地址:https://www.cnblogs.com/liuyansheng/p/6530975.html
Copyright © 2011-2022 走看看