1.创建redis主服务器redis-master (成功会输出一段字符)
2.创建两个redis从服务器redis-slave-1和redis-slave-2
4.查看redis-master的容器信息,找到IPAddress地址 我这是172.17.0.2
前言
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
回车后如下图就是全部创建成功了
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
5.2 进入redis-slave-1的密令行界面
redis-cli
5.3 指定当前Redis服务器为redis-master的从服务器。该命令的格式是 slaveof IP端口号,这里指向 172.17.0.2:6379 所在的主服务器。
slaveof 172.17.0.2 6379
5.4 退出redis命令行和退出容器(执行两次exit)
exit
5.5 进入redis-slave-2容器文件中(步骤和上面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
可以看到有两台从服务器
6.2 输入redis命令,在redis-master 中存入一些数据 并查看 (下面命令逐条执行)
set hhh 小熊369
set xxx 小熊QAQ
keys *
6.3 退出redis-master容器进入redis-slave-1命令界面中查看数据是否同步 (下面命令逐条执行)
exit
exit
docker exec -it redis-slave-1 /bin/bash
redis-cli
keys *
出现如下图情况说明主从同步成功了,redis-slave-2也可以这样去验证一下
三使用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! 前要在查看模式下输入“ : ”号后输入)
2.3 进入docker-compose.yml所在的文件夹中,执行命令
docker-compose up -d
如下图一样则表示成功了
成功:退出文件夹,输入docker -ps 就可以看到启动的容器了 (下面命令逐条执行)
cd -
docker ps
失败: 报错是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
出现如上图后执行下面命令(下面命令逐条执行)
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 *
退出redis-master服务器 进入redis-slave-1从服务器命令行(下面命令逐条执行)
exit
exit
docker exec -it redis-slave-1 /bin/bash
redis-cli
输入密码 redispwd 并查看数据 (下面命令逐条执行)
auth redispwd
keys *
查询到的key 和 master中的一样说明主从同步成功了
redis-slave-2服务器按照上述redis-slave-1的步骤查看
小结一下
出现报错时先查看命令是否输错了,如果还是有错误建议把报错信息复制上网搜索一下。