前期准备:

本地Linux版本:CentOS Linux release 7.5.1804 (Core)
Docker版本:Docker version 1.13.1, build dded712/1.13.1
redis版本:Redis server v=3.2.5 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=8a9244bcd1f679f5

本地Linux上安装Docker并下载centos7 image

yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm -- 安装yum源

yum install docker-io -- 安装docker

docker version -- 查看docker版本

systemctl start docker -- 启动docker服务

docker pull docker.io/centos -- 下载centos7 image

Docker创建两个容器

docker run -d -v `pwd`/redis_m_a/m:/data -p 16379:6379 docker.io/centos /usr/sbin/init

docker run -d -v `pwd`/redis_m_a/a:/data -p 26379:6379 docker.io/centos /usr/sbin/init

分别进入两个容器并安装redis

yum install -y wget gcc make tcl

cd /usr/local/src

wget redis-3.2.5.tar.gz

tar zxvf redis-3.2.5.tar.gz

cd redis-3.2.5

make && make install

核心配置文件参数

a、Master config

vi /etc/redis/redis.conf

1.1、### NETWORK

bind 172.17.0.2 # 容器IP

port 6379

timeout 30  # Client 端空闲断开连接的时间

daemonize yes    #默认值是no,把值修改为yes,以后台模式运行

1.2、### GENERAL

logfile /data/redis.log  #日志文件的位置

1.3、### SNAPSHOTTING 设置:

dir /data/data #SNAPSHOTTING文件的路径

1.4、### APPEND ONLY MODE 设置

appendonly yes  #默认值是No,意思是不使用AOF增量持久化的方式,使用RDB全量持久化的方式。把No值改成Yes,使用AOF增量持久化的方式

appendfsync always

b、###### Slave Config

vi /etc/redis/redis.conf

2.1、### NETWORK

bind 172.17.0.3 # 容器IP

port 6379

timeout 30  # Client 端空闲断开连接的时间

daemonize yes    #默认值是no,把值修改为yes,以后台模式运行

2.2、### GENERAL

logfile /data/redis.log  #日志文件的位置

2.3、### SNAPSHOTTING 设置:

dir /data/data #SNAPSHOTTING文件的路径

2.4、### REPLICATION 设置:

slaveof 172.17.0.2 6379

slave-serve-stale-data no  #如果slave 无法与master 同步,设置成slave不可读,方便监控脚本发现问题。

2.5、### APPEND ONLY MODE 设置:

appendonly yes  #默认值是No,意思是不使用AOF增量持久化的方式,使用RDB全量持久化的方式。把No值改成Yes,使用AOF增量持久化的方式

appendfsync always

启动主从redis

主库:

[root@docker program]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES

2aca3e6124a1        docker.io/redis     "/usr/sbin/init"    2 minutes ago       Up 2 minutes        0.0.0.0:26379->6379/tcp   gifted_ardinghelli

4b16704a146c        docker.io/redis     "/usr/sbin/init"    2 minutes ago       Up 2 minutes        0.0.0.0:16379->6379/tcp   angry_northcutt

[root@docker program]# docker exec -it 4b16704a146c bash

[root@4b16704a146c run]# redis-server /etc/redis/redis.conf &

[1] 173

[root@4b16704a146c run]#

[root@4b16704a146c run]# ps -ef | grep redis

root        173     30  0 07:30 ?        00:00:00 redis-server 172.17.0.2:6379

root        178     30  0 07:30 ?        00:00:00 grep --color=auto redis

从库:

[root@docker program]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES

2aca3e6124a1        docker.io/redis     "/usr/sbin/init"    2 minutes ago       Up 2 minutes        0.0.0.0:26379->6379/tcp   gifted_ardinghelli

4b16704a146c        docker.io/redis     "/usr/sbin/init"    2 minutes ago       Up 2 minutes        0.0.0.0:16379->6379/tcp   angry_northcutt

[root@docker program]# docker exec -it 2aca3e6124a1 bash

[root@2aca3e6124a1 run]# redis-server /etc/redis/redis.conf &

[1] 173

[root@2aca3e6124a1 run]#

[root@2aca3e6124a1 run]# ps -ef | grep redis

root        173     30  0 07:30 ?        00:00:00 redis-server 172.17.0.3:6379

root        178     30  0 07:30 ?        00:00:00 grep --color=auto redis

 

测试演示

[root@4b16704a146c run]# redis-cli -h 172.17.0.2 -p 6379 -a vcredit

172.17.0.2:6379> set foo hello

OK

172.17.0.2:6379>

172.17.0.2:6379> get foo

"hello"

172.17.0.2:6379> quit

[root@4b16704a146c run]# redis-cli -h 172.17.0.3 -p 6379 -a vcredit

172.17.0.3:6379> get foo

"hello"

172.17.0.3:6379> get word

"nihao"

172.17.0.3:6379>

172.17.0.3:6379> quit

使用docker搭建redis主从模式的更多相关文章

  1. docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接

    花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...

  2. 【Redis】Redis学习(三) Redis 主从模式详解

    不管任何程序,只运行一个实例都是不可靠的,一旦因为网络原因导致所在机器不可达,或者所在服务器挂掉,那么这个程序将不能对外提供服务了,Redis也是一样的.不过Redis的主从并不是解决这个问题的,一些 ...

  3. Docker 搭建 Redis Cluster 集群环境

    使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...

  4. docker安装redis主从以及哨兵

    docker安装redis主从以及哨兵 本文使用docker在四台机器上部署一主二从三哨兵的Redis主从结构. 服务器配置 192.168.102.128 主节点 centos7.5 192.168 ...

  5. 搭建redis哨兵模式

    搭建redis哨兵模式,一主两从三哨兵   1.从官网下载redis安装包:此处是redis-5.0.7.tar.gz 2.上传到目录 /utxt/soft 3.解压 4.cd /utxt/soft/ ...

  6. docker部署redis主从和哨兵

    docker部署redis主从和哨兵 原文地址:https://www.jianshu.com/p/72ee9568c8ea 1主2从3哨兵 一.前期准备工作 1.电脑装有docker 2.假设本地i ...

  7. 一、全新安装搭建redis主从集群

    前言· 这里分为三篇文章来写我是如何重新搭建redis主从集群和哨兵集群的及原本服务器上有单redis如何通过升级脚本来实现redis集群.(redis结构:主-从(备)-从(备)) 至于为什么要搭建 ...

  8. 【Redis】Redis 主从模式搭建

    主从模式介绍 Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据 ...

  9. 5分钟实现用docker搭建Redis集群模式和哨兵模式

    如果让你为开发.测试环境分别搭一套哨兵和集群模式的redis,你最快需要多久,或许你需要一天?2小时?事实是可以更短. 是的,你已经猜到了,用docker部署,真的只需要十几分钟. 一.准备工作 拉取 ...

随机推荐

  1. 异构环境oracle数据库迁移dmp文件之exp和imp以及expdp和impdp

    exp/imp可在以下情况下使用 两个数据库之间传送数据 1.同一个oracle数据库的版本之间 2.不同oracle数据库的版本之间 3.相同或不相同的操作系统之间的oracle数据库 用于数据库的 ...

  2. <--------------------------Java接口如何使用------------------------------>

    关键词:interface --->接口      implements--->实现 1接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应 ...

  3. BackgroundWorker Class Sample for Beginners

    Download source - 27.27 KB Introduction This article presents a novice .NET developer to develop a m ...

  4. Python 不可变对象练习

    Python 不可变对象练习 str 是不可变对象,就是对这个对象进行操作不会改变这个对象的数据. 如下: >>> a = 'abc' >>> a.replace( ...

  5. 艰苦的编译boost python (失败)

    1.下载 boost_1_67_0 2.在目录下执行 bootstrap 3.将python36添加到path环境变量 4.执行 b2 --with-python,将会声场如下dll 2018/04/ ...

  6. node api 之:process - 进程

    process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程. 因为是全局变量,所以无需使用 require().

  7. python 术语

    python 术语 术语英文 术语中文 说明 PyPI(Python Package Index) 搜索python包的网站:https://pypi.org/ pip.easy_install 包管 ...

  8. 安装ES

    ES环境搭建 1.创建用户组2.目录授权3.安装jdk4.vi /etc/sysctl.confvm.map_maxcount=65535vm.swappiness=5 sysctl -p 生效5.修 ...

  9. ESP8266 ESP-01调试方法

    1. 用AMS1117搭建一个3.3V输出的电路 2. ESP8266 ESP-01接线 只要连接UTXD.GND.CH_PD.VCC.URXD这五个管脚就可以直接使用了. 注意的是CH_PD要接高电 ...

  10. 分布式超级账本Hyperledger里zookeeper的作用

    Zookeeper是一种在分布式系统中被广泛用来作为:分布式状态管理.分布式协调管理.分布式配置管理.和分布式锁服务的集群.kafka增加和减少服务器都会在Zookeeper节点上触发相应的事件kaf ...