docker安装redis并搭建集群

一、docker安装redis

1、拉取redis镜像文件

docker pull redis

查看镜像

docker images

在这里插入图片描述

2、在linux主机创建等会需要挂载的目录和文件

  • 创建data目录(存放数据文件,包括用于持久化的dump.rdb)

    mkdir -p /mydata/redis/data

  • 创建配置文件

    mkdir -p /mydata/redis/conf
    touch /mydata/redis/conf/redis.conf

3、创建redis容器并进行端口映射、容器取名和目录文件挂载

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data 
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf 
-d redis redis-server /etc/redis/redis.conf

:前面是指linux主机,后面是redis容器
--name redis 是给容器取名字
最后一行的redis是指镜像名

4、启动容器并进入客户端

在这里插入图片描述

  • 第一种

    docker exec -it 容器名或容器id bash
    redis-cli

在这里插入图片描述

  • 第二种,直接启动并进入

    docker exec -it 容器名或容器id redis-cli

在这里插入图片描述

二、docker搭建redis集群

1、在linux主机上创建相应的目录用于挂载

mkdir -p /mydata/redis/cluster/node1/data   #集群一
mkdir -p /mydata/redis/cluster/node2/data   #集群二
mkdir -p /mydata/redis/cluster/node3/data   #集群三

2、创建集群

创建集群一

docker create --name redis-node1 -v /mydata/redis/cluster/node1/data:/data  
-p 6380:6379 redis --cluster-enabled yes    
--cluster-config-file redis-node1.conf

启动集群一

docker start redis-node1

创建集群二

docker create --name redis-node2 -v /mydata/redis/cluster/node2/data:/data  
-p 6381:6379 redis --cluster-enabled yes    
--cluster-config-file redis-node2.conf

启动集群二

docker start redis-node2

创建集群三

docker create --name redis-node3 -v /mydata/redis/cluster/node3/data:/data  
-p 6382:6379 redis --cluster-enabled yes    
--cluster-config-file redis-node3.conf

启动集群三

docker start redis-node3

3、查看集群信息

查看启动后的三个集群容器
在这里插入图片描述

注意三个集群的IP和端口信息
1、IP信息

三个Redis集群在Docker容器中被重新分配了IP信息

1)先看redis-node1容器被分配的IP地址

docker inspect redis-node1

在这里插入图片描述

redis-node1:  172.17.0.6

2)再看redis-node2容器被分配的IP地址

docker inspect redis-node2

在这里插入图片描述

redis-node2:  172.17.0.7

3)最后看redis-node3容器被分配的IP地址

docker inspect redis-node3

在这里插入图片描述

redis-node3:  172.17.0.8

2、 端口信息
在做端口映射时,我们已经指明了端口情况
redis-node1对外的端口是6380,但是在自己docker分配IP下的端口还是6379
redis-node2对外的端口是6381,但是在自己docker分配IP下的端口还是6379
redis-node3对外的端口是6382,但是在自己docker分配IP下的端口还是6379

4、集群搭建

执行组建集群命令(请根据自己的ip信息进行拼接)

redis-cli --cluster create 172.17.0.6:6379  172.17.0.7:6379  172.17.0.8:6379 --cluster-replicas 0

5、测试集群

启动redis,一定要以redis-cli -c命令启动,-c代表启动集群的意思

在集群一中set name zhangsan
在这里插入图片描述
在集群二和集群三中get name
在这里插入图片描述
在这里插入图片描述
可以看到集群搭建成功

这种集群有个问题,就是这些ip是在一个docker下的,所以只能在一台服务器才可以成功,另外还有一种集群搭建方式,可见https://blog.51cto.com/u_11827525/2854701

三、docker搭建搭建集群的主从关系

其实我本来想搭建主从关系的集群的,但是上面的方式没有成功,原因不详,找到另外一种方法
在这里插入图片描述
在进行之前我们需要将之前创建的容器给删了

docker stop redis-node1
docker rm redis-node1


docker stop redis-node2
docker rm redis-node2


docker stop redis-node3
docker rm redis-node3

算了,我不想试了,我直接在主机上搭建集群吧,我不在docker里面搭建了,这里有个链接,谁想试试自己来吧。
https://blog.51cto.com/u_11827525/2854652

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Docker部署Redis集群的步骤: 1.拉取Redis官方镜像: ```shell docker pull redis ``` 2.创建一个自定义的网络: ```shell docker network create redis-net ``` 3.创建6个Redis容器,3个作为主节点,3个作为从节点: ```shell docker run -d --name redis-1 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-2 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-3 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-4 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-5 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-6 --net redis-net redis redis-server --appendonly yes ``` 4.将容器分配到不同的主节点和从节点: ```shell docker exec -it redis-1 redis-cli cluster meet <ip-address-of-redis-2> 6379 docker exec -it redis-1 redis-cli cluster meet <ip-address-of-redis-3> 6379 docker exec -it redis-4 redis-cli cluster meet <ip-address-of-redis-5> 6379 docker exec -it redis-4 redis-cli cluster meet <ip-address-of-redis-6> 6379 docker exec -it redis-1 redis-cli cluster replicate <node-id-of-redis-2> docker exec -it redis-1 redis-cli cluster replicate <node-id-of-redis-3> docker exec -it redis-4 redis-cli cluster replicate <node-id-of-redis-5> docker exec -it redis-4 redis-cli cluster replicate <node-id-of-redis-6> ``` 5.检查集群状态: ```shell docker exec -it redis-1 redis-cli cluster info ``` 6.在集群中添加键值对: ```shell docker exec -it redis-1 redis-cli set mykey "Hello World" docker exec -it redis-4 redis-cli get mykey ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值