1. 环境准备
-
1)装备两台机器,例如机器1:192.168.3.92,机器2:192.168.3.93
-
2)两台机器安装docker,docker的安装参见Docker的基本安装和使用
-
3)两台机器安装docker-compose
2. 安装Redis
2.1 机器1:192.168.3.92安装
2.1.1)创建存放redis的文件夹
mkdir /home/redis cd /home/redis
2.1.2)创建docker-compose.yml,使用docker-compose安装创建
#创建docker-compose.yml touch docker-compose.yml # 编辑文件 vim docker-compose.yml
docker-compose.yml文件的内容如下:
这里的配置文件表示,我们三个redis,2个主,1个从。
version: '3.4' #这里是使用了别人配置好的集群镜像 publicisworldwide/redis-cluster x-image: &default-image publicisworldwide/redis-cluster x-restart: &default-restart always x-netmode: &default-netmode host services: redis1: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - /data/redis/master7001/data:/data - /data/redis/master7001/conf/redis.conf:/usr/local/etc/redis/redis.conf - /data/redis/master7001/log/redis.log:/root/redis/redis.log environment: - REDIS_PORT=7001 redis2: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - /data/redis/master7002/data:/data - /data/redis/master7002/conf/redis.conf:/usr/local/etc/redis/redis.conf - /data/redis/master7002/log/redis.log:/root/redis/redis.log environment: - REDIS_PORT=7002 redis3: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - /data/redis/slave7003/data:/data - /data/redis/slave7003/conf/redis.conf:/usr/local/etc/redis/redis.conf - /data/redis/slave7003/log/redis.log:/root/redis/redis.log environment: - REDIS_PORT=7003
2.1.3)使用docker-compose创建容器
启动成功#后台启动redis docker-compose up -d #启动成功以后,使用docker查看镜像 docker ps
2.2 机器2:192.168.3.93安装
2.2.1)创建存放redis的文件夹
mkdir /home/redis
cd /home/redis
2.2.2)创建docker-compose.yml,使用docker-compose安装创建
#创建docker-compose.yml
touch docker-compose.yml
# 编辑文件
vim docker-compose.yml
docker-compose.yml文件的内容如下:
这里的配置文件表示,我们三个redis,2个从,1个主。
version: '3.4'
x-image:
&default-image
publicisworldwide/redis-cluster
x-restart:
&default-restart
always
x-netmode:
&default-netmode
host
services:
redis1:
image: *default-image
network_mode: *default-netmode
restart: *default-restart
volumes:
- /data/redis/slave7001/data:/data
- /data/redis/slave7001/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /data/redis/slave7001/log/redis.log:/root/redis/redis.log
environment:
- REDIS_PORT=7001
redis2:
image: *default-image
network_mode: *default-netmode
restart: *default-restart
volumes:
- /data/redis/slave7002/data:/data
- /data/redis/slave7002/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /data/redis/slave7002/log/redis.log:/root/redis/redis.log
environment:
- REDIS_PORT=7002
redis3:
image: *default-image
network_mode: *default-netmode
restart: *default-restart
volumes:
- /data/redis/master7003/data:/data
- /data/redis/master7003/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /data/redis/master7003/log/redis.log:/root/redis/redis.log
environment:
- REDIS_PORT=7003
2.2.3)使用docker-compose创建容器
#后台启动redis
docker-compose up -d
#启动成功以后,使用docker查看镜像
docker ps
启动成功
2.3 配置集群
以上只是启动了redis服务,还没有加上集群,我们运行下面的命令配置上集群
docker run --rm -it --net host inem0o/redis-trib create --replicas 1 192.168.3.92:7001 192.168.3.92:7002 192.168.3.93:7003 192.168.3.93:7001 192.168.3.93:7002 192.168.3.92:7003
前面这三个是主服务:192.168.3.92:7001 192.168.3.92:7002 192.168.3.93:7003
后面这三个是从服务,与主服务的顺序一一对应:192.168.3.93:7001 192.168.3.93:7002 192.168.3.92:7003
因为前面我们没有下载redis-trib,这里会自动下载这个镜像。
集群启动成功后,我们进行简单测试,我们选择192.168.3.93进行测试
#查看容器
docker ps
#进入容器
docker exec -it d47cf9412a9b /bin/bash
#进入redis客户端,注意集群模式,连接时需要输入 -c
redis-cli -h 127.0.0.1 -p 7002 -c
#连接成功以后,设置值
set 1 1
如下图所示,我们可以看到设置的值分到槽位9842,端口7003,不存储我在我们登陆的7002端口。表示集群已成功安装,并且运行正常。
集群验证
网友评论