• docker安装redis并搭建集群


    一、docker安装redis

    1、拉取redis镜像文件

    docker pull redis
    
    • 1

    查看镜像

    docker images
    
    • 1

    在这里插入图片描述

    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
    
    • 1
    • 2
    • 3

    :前面是指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   #集群三
    
    • 1
    • 2
    • 3

    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
    
    • 1
    • 2
    • 3

    启动集群一

    docker start redis-node1
    
    • 1

    创建集群二

    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
    
    • 1
    • 2
    • 3

    启动集群二

    docker start redis-node2
    
    • 1

    创建集群三

    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
    
    • 1
    • 2
    • 3

    启动集群三

    docker start redis-node3
    
    • 1

    3、查看集群信息

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

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

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

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

    docker inspect redis-node1
    
    • 1

    在这里插入图片描述

    redis-node1:  172.17.0.6
    
    • 1

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

    docker inspect redis-node2
    
    • 1

    在这里插入图片描述

    redis-node2:  172.17.0.7
    
    • 1

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

    docker inspect redis-node3
    
    • 1

    在这里插入图片描述

    redis-node3:  172.17.0.8
    
    • 1

    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
    
    • 1

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

  • 相关阅读:
    Java8新特性-Stream对集合进行操作的常用API
    微服务和注册中心
    北京建筑笔记
    高效Python-提高数据处理效率的迫切需要
    超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)
    Helm upgrade 时 no matches for kind “xxxx“ in version “xxxx“ 问题处理
    滑动窗口最大值问题
    简单理解JS回调函数(callback)
    前端工程化——构建过程中的增量更新与缓存
    9个Excel小技巧,提高你的数据分析效率
  • 原文地址:https://blog.csdn.net/m0_67392811/article/details/126327510