前言

一、docker相关命令

二、用命令方式搭建

1.创建redis主服务器redis-master (成功会输出一段字符)

2.创建两个redis从服务器redis-slave-1和redis-slave-2

3.查看启动的容器(创建后会启动)

4.查看redis-master的容器信息,找到IPAddress地址 我这是172.17.0.2

编辑

 5.进行主从复制配置

6.查看主从配置信息和主从内容同步验证

三使用docker compose.yml配置文件搭建

1.复制下面文本

2.创建配置文件 

3 主从内容同步验证

小结一下



前言

1.本文章使用的是docker搭建的redis一主二从模式,没有安装docker的可以去安装一下,docker在开发过中还是挺实用的,这是安装教程连接  Ubuntu - Docker — 从入门到实践

2.下面命令我是以root权限敲的,root权限和普通权限在输入命令时会有些区别,普通权限有些命令要在前面加上 sodu  所以使用root权限会更加方便切换教程 如果输入命令行前面是“roo@ + 用户名”,那就是处于root权限,如果不是可以看切换教程连接      ubuntu切换到root

一、docker相关命令

service docker start                    启动docker

service docker stop                    关闭docker

docker images                            查看下载的镜像

docker pull redis                         下载redis镜像

docker rmi redis:3.2                    删除‘TAG’ 为3.2的redis镜像 

docker ps -a                                查看所有容器

docker ps                                    查看在运行的容器

docker run 容器名                       创建一个新的容器并运行

docker rm 容器名                        删除一个容器

docker start redis                        启动已被停止的容器redis

docker stop redis                        停止运行中的容器redis

docker restart redis                     重启容器redis

docker stop $(docker ps -aq)     关闭所有容器

docker rm $(docker ps -aq)        删除所有容器

docker rmi $(docker images -q) 删除所有镜像

docker version                            查看docker版本

二、用命令方式搭建

1.创建redis主服务器redis-master (成功会输出一段字符)

docker run -itd --name redis-master -p 6379:6379 redis:latest

2.创建两个redis从服务器redis-slave-1和redis-slave-2

docker run -itd --name redis-slave-1 -p 6380:6380 redis:latest
docker run -itd --name redis-slave-2 -p 6381:6381 redis:latest

3.查看启动的容器(创建后会启动)

docker ps

 回车后如下图就是全部创建成功了

docker 拉出来 docker radius_redis

4.查看redis-master的容器信息,找到IPAddress地址 我这是172.17.0.2

docker inspect redis-master

 5.进行主从复制配置

5.1 进入redis-slave-1容器文件中

docker exec -it redis-slave-1 /bin/bash

docker 拉出来 docker radius_docker 拉出来_02

 5.2 进入redis-slave-1的密令行界面

redis-cli

docker 拉出来 docker radius_redis_03

5.3 指定当前Redis服务器为redis-master的从服务器。该命令的格式是 slaveof  IP端口号,这里指向 172.17.0.2:6379 所在的主服务器。

slaveof 172.17.0.2 6379

docker 拉出来 docker radius_docker_04

5.4 退出redis命令行和退出容器(执行两次exit)

exit

docker 拉出来 docker radius_redis_05

(步骤和上面redis-slave-1一样  (下面命令逐条执行)

docker exec -it redis-slave-2 /bin/bash
redis-cli
slaveof 172.17.0.2 6379
exit
exit

6.查看主从配置信息和主从内容同步验证

6.1 进入redis-master命令界面,输入info replicationv  (下面命令逐条执行)

docker exec -it redis-master /bin/bash
redis-cli
info replication

可以看到有两台从服务器

docker 拉出来 docker radius_redis_06

6.2  输入redis命令,在redis-master 中存入一些数据 并查看 (下面命令逐条执行)

set hhh 小熊369
set xxx 小熊QAQ
keys *

docker 拉出来 docker radius_docker_07

(下面命令逐条执行)

exit
exit
docker exec -it redis-slave-1 /bin/bash
redis-cli
keys *

 出现如下图情况说明主从同步成功了,redis-slave-2也可以这样去验证一下

docker 拉出来 docker radius_redis_08

三使用docker compose.yml配置文件搭建

1.复制下面文本

version: '3.7'
services:
  master:
    image: redis
    container_name: redis-master
    restart: always
    command: redis-server --requirepass redispwd  --appendonly yes
    ports:
      - 6379:6379
    volumes:
      - ./data1:/data
  slave1:
    image: redis
    container_name: redis-slave-1
    restart: always
    command: redis-server --slaveof redis-master 6379  --requirepass redispwd --masterauth redispwd  --appendonly yes
    ports:
      - 6380:6379
    volumes:
      - ./data2:/data
  slave2:
    image: redis
    container_name: redis-slave-2
    restart: always
    command: redis-server --slaveof redis-master 6379  --requirepass redispwd --masterauth redispwd  --appendonly yes
    ports:
      - 6381:6379
    volumes:
      - ./data3:/data

2.创建配置文件 

2.1 创redis文件夹,进入文件夹,创建docker-compose.yml文件 (下面命令逐条执行)

mkdir redis
cd redis
vim docker-compose.yml

mkdir  创建文件夹    rm -rf 删除文件夹     rm 删除文件      cd 进入文件夹      cd -

2.2 回车后会进入文件中并处于编辑模式下,将文本黏贴,黏贴后会处于查看模式,输入:qw

:wq

wq 保存并退出    q! 不保存退出     按 Esc 键是进入查看模式     按 i 键是进入编辑模式

左下角有 -- INSERT -- 表示处于编辑模式,没有则表示处于查看模式 (输入wq 或q! 前要在查看模式下输入“ : ”号后输入)

docker 拉出来 docker radius_运维_09

2.3 进入docker-compose.yml所在的文件夹中,执行命令

docker-compose up -d

如下图一样则表示成功了

 

docker 拉出来 docker radius_docker 拉出来_10

成功:退出文件夹,输入docker -ps 就可以看到启动的容器了 (下面命令逐条执行)

cd -
docker ps

docker 拉出来 docker radius_docker_11

失败: 报错是Command 'docker-compose' not found, but can be installed with: apt install docker-compose 那就是缺少文件 (成功的不用执行直接进入主从内容同步验证)

退出redis文件夹

cd -

执行下面这一整条命令

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

docker 拉出来 docker radius_容器_12

(下面命令逐条执行)

cd redis
docker-compose up -d

3 主从内容同步验证

进入到redis-master 命令行界面(下面命令逐条执行)

docker exec -it redis-master /bin/bash
redis-cli

输入密码 redispwd(密码写在了配置文件里)  写入数据 并查看(下面命令逐条执行)

auth redispwd
set hhh 小熊369
set xxx 小熊QAQ
keys *

docker 拉出来 docker radius_容器_13

退出redis-master服务器 进入redis-slave-1从服务器命令行(下面命令逐条执行)

exit
exit
docker exec -it redis-slave-1 /bin/bash
redis-cli

输入密码 redispwd  并查看数据 (下面命令逐条执行)

auth redispwd
keys *

查询到的key 和 master中的一样说明主从同步成功了

docker 拉出来 docker radius_docker_14

redis-slave-2服务器按照上述redis-slave-1的步骤查看

小结一下

出现报错时先查看命令是否输错了,如果还是有错误建议把报错信息复制上网搜索一下。