zoukankan      html  css  js  c++  java
  • 阿里云Docker+Redis单机版搭建集群(主从)配置最详细记录

    参考来源:https://www.cnblogs.com/fan-gx/p/11463400.html

    原文是测试多台服务器,我的只有单台,仿照这个,自己探索了一番,搞出来了,非常详细的记录如下:

    主机配置文件(6379)

    # 注释这一行,表示Redis可以接受任意ip的连接
    # bind 127.0.0.1

    # Accept connections on the specified port, default is 6379 (IANA #815344).
    # If port 0 is specified Redis will not listen on a TCP socket.
    port 6379

    # 关闭保护模式
    protected-mode no

    # 让redis服务后台运行
    daemonize yes

    # 设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码. 只是练习配置,就不使用密码认证了)
    # requirepass masterpassword

    # 配置日志路径,为了便于排查问题,指定redis的日志文件目录
    logfile "/mylog/redis-master.log"

     

    从机1配置文件(6380)

    # 注释这一行,表示Redis可以接受任意ip的连接
    # bind 127.0.0.1

    # Accept connections on the specified port, default is 6379 (IANA #815344).
    # If port 0 is specified Redis will not listen on a TCP socket.
    port 6380

    # 关闭保护模式
    protected-mode no

    # 让redis服务后台运行
    daemonize yes

    # 设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码)
    requirepass masterpassword

    # 设定主库的密码,用于认证,如果主库开启了requirepass选项这里就必须填相应的密码
    masterauth <master-password>

    # 设定master的IP和端口号,redis配置文件中的默认端口号是6379
    # 低版本的redis这里会是slaveof,意思是一样的,因为slave是比较敏感的词汇,所以在redis后面的版本中不在使用slave的概念,取而代之的是replica
    # 将35.236.172.131做为主,其余两台机器做从。ip和端口号按照机器和配置做相应修改。
    replicaof 35.236.172.131 6379

    # 配置日志路径,为了便于排查问题,指定redis的日志文件目录
    logfile "/mylog/redis-slave.log"

     

    从机2配置文件(6382)【只修改port即可】

    # 注释这一行,表示Redis可以接受任意ip的连接
    # bind 127.0.0.1

    # Accept connections on the specified port, default is 6379 (IANA #815344).
    # If port 0 is specified Redis will not listen on a TCP socket.
    port 6382

    # 关闭保护模式
    protected-mode no

    # 让redis服务后台运行
    daemonize yes

    # 设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码)
    requirepass masterpassword

    # 设定主库的密码,用于认证,如果主库开启了requirepass选项这里就必须填相应的密码
    masterauth <master-password>

    # 设定master的IP和端口号,redis配置文件中的默认端口号是6379
    # 低版本的redis这里会是slaveof,意思是一样的,因为slave是比较敏感的词汇,所以在redis后面的版本中不在使用slave的概念,取而代之的是replica
    # 将35.236.172.131做为主,其余两台机器做从。ip和端口号按照机器和配置做相应修改。
    replicaof 35.236.172.131 6379

    # 配置日志路径,为了便于排查问题,指定redis的日志文件目录
    logfile "/mylog/redis-slave.log"

     

    安装主机(6379)

    #其中/var/lib/docker/containers/myconf/redis_1.conf是我放置主机配置文件位置
    docker run -it --name redis-1 -v /var/lib/docker/containers/myconf/redis_1.conf:/usr/local/etc/redis/redis.conf -d -p 6379:6379 redis /bin/bash

    安装从机(6380)

    docker run -it --name redis-2 -v /var/lib/docker/containers/myconf/redis_2.conf:/usr/local/etc/redis/redis.conf -d -p 6380:6379 redis /bin/bash

    安装从机(6382)

    docker run -it --name redis-4 -v /var/lib/docker/containers/myconf/redis_4.conf:/usr/local/etc/redis/redis.conf -d -p 6382:6379 redis /bin/bash

     

    启动redis服务器(主6379)

    # 以交互模式进入容器redis-1
    $ docker exec -it redis-1 bash

    # 创建日志文件目录(这里如果不写,直接从下方redis-server开始会报错,错误就是没有这个)
    # 这里的/mylog/redis-master.log就是我的配置文件中的logfile
    $ mkdir /mylog
    $ touch /mylog/redis-master.log

    # 启动redis服务器,如果没有任何输出,就说明成功了
    $ redis-server /usr/local/etc/redis/redis.conf

    # 在容器里启动一个redis客户端
    $ redis-cli

    # 执行info命令,查看服务器状态
    127.0.0.1:6379> info replication

    # 最后退出容器
    $ exit

     

    启动redis服务器(从6380)

    # 以交互模式进入容器redis-2
    $ docker exec -it redis-2 bash

    # 创建日志文件目录(这里如果不写,直接从下方redis-server开始会报错,错误就是没有这个)
    # 这里的/mylog/redis-slave.log就是我的配置文件中的logfile
    $ mkdir /mylog
    $ touch /mylog/redis-slave.log

    # 启动redis服务器,如果没有任何输出,就说明成功了
    $ redis-server /usr/local/etc/redis/redis.conf

    # 在容器里启动一个redis客户端
    $ redis-cli -p 6380

    # 执行info命令,查看服务器状态(看到前方127.0.0.1:【6380】了没,这就ok啦,哈哈)
    127.0.0.1:6380> info replication

    # 最后退出容器
    $ exit

     

    启动redis服务器(从6382)

    # 以交互模式进入容器redis-4
    $ docker exec -it redis-4 bash

    # 创建日志文件目录(这里如果不写,直接从下方redis-server开始会报错,错误就是没有这个)
    # 这里的/mylog/redis-slave.log就是我的配置文件中的logfile
    $ mkdir /mylog
    $ touch /mylog/redis-slave.log

    # 启动redis服务器,如果没有任何输出,就说明成功了
    $ redis-server /usr/local/etc/redis/redis.conf

    # 在容器里启动一个redis客户端
    $ redis-cli -p 6382

    # 执行info命令,查看服务器状态(看到前方127.0.0.1:【6382】了没,这就ok啦,哈哈)
    127.0.0.1:6382> info replication

    # 最后退出容器
    $ exit

     

    然后在主机下面info replication就会发现跟了两个从机,yeah!

    127.0.0.1:6379> info replication
    # Replication
    role:master
    connected_slaves:2
    slave0:ip=我的ip保密,port=6380,state=online,offset=1688,lag=0
    slave1:ip=我的ip保密,port=6382,state=online,offset=1688,lag=1
    master_replid:a8708b275e0694e97cf18aea3db4f683b536925a
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:1688
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:1688
  • 相关阅读:
    加入强调语气,使用<strong>和<em>标签
    了解<hx>标签,为你的网页添加标题
    开始学习<p>标签,添加段落
    <body>标签,网页上显示的内容放在这里
    语义化,让你的网页更好的被搜索引擎理解
    深入源码分析SpringMVC底层原理(二)
    设计模式是什么鬼(解释器)
    Java并发面试题
    漫画 | Spring AOP的底层原理是什么?
    漫画|你还记得原生的JDBC怎么连接数据库吗?
  • 原文地址:https://www.cnblogs.com/ningxinjie/p/13887240.html
Copyright © 2011-2022 走看看