Docker redis集群配置。我们会在一台centos的虚拟机上,配置redis集群

前期规划:

  • redis版本 redis:5.0.14

  • 网络配置,我们会创建名称为redis的网络,子网掩码为 172.38.0.0/16的网络

  • 我们会启动六个redis。对应的容器名分别为:redis-1,redis-2,redis-3,redis-4,redis-5,redis-6;对应的IP为:172.38.0.11,172.38.0.12,172.38.0.13,172.38.0.14,172.38.0.15,172.38.0.16;映射到宿主机的端口分别为:6371,6372,6373,6374,6375,6376;配置文件和数据文件分别挂载在宿主机:/usr/local/docker/redis/node-1,/usr/local/docker/redis/node-2,/usr/local/docker/redis/node-3,/usr/local/docker/redis/node-4,/usr/local/docker/redis/node-5,/usr/local/docker/redis/node-6

配置过程:

    1. 创建网络
# 创建一个名为redis,子网掩码为172.38.0.0/16的网络
[root@localhost ~]# docker network create redis --subnet 172.38.0.0/16
# 查看网络是否创建成功,看到NAME为redis的则表示创建成功
[root@localhost ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
910bb1c3ed53   bridge    bridge    local
0abda6b25a0e   host      host      local
7c4403334c93   mynet     bridge    local
844e3f85e00e   mysql     bridge    local
c2bbcb4013a7   none      null      local
295732ea0dac   redis     bridge    local
# docker network inspect redis可以查看redis的详细信息
[root@localhost ~]# docker network inspect redis
[{"Name": "redis","Id": "295732ea0dacb5f64ba0c2748db3eeeb54271fe8e97f5d316df70b091279673b","Created": "2021-12-11T06:32:00.216608768-05:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "172.38.0.0/16","Gateway": "172.38.0.1"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {},"Options": {},"Labels": {}}
]
    1. 下载redis镜像
    # 我们下载redis:5.0.14(docker pull redis:5.0.14)
    [root@localhost /]# docker pull redis:5.0.14
    5.0.14: Pulling from library/redis
    e5ae68f74026: Pull complete
    37c4354629da: Pull complete
    b065b1b1fa0f: Pull complete
    99ab464ba8bb: Pull complete
    eb5bbe3179d2: Pull complete
    2067794f93b6: Pull complete
    Digest: sha256:310f81701011175dc868e833d73f539282dd18510ca35d6f7b63c4d33ab4f54e
    Status: Downloaded newer image for redis:5.0.14
    docker.io/library/redis:5.0.14
    # docker images查看redis镜像是否下载成功
    [root@localhost /]# docker images
    REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
    redis        5.0.14    071510791e92   2 weeks ago   110MB
    mysql        5.7       738e7101490b   2 weeks ago   448MB
    
    1. 启动六个redis

    我们会在宿主机上的/usr/local/docker/redis文件夹下,分别创建node-1,node-2,node-3,node-4,node-5,node-6。写入对应的redis.conf文件的内容。注意cluster-announce-ip对应的ip。

    # 1. 创建6个redis对应的配置,下面的命令可以直接复制到xshell里面执行。会生成对应的文件和写入相应的配置
    for index in $(seq 1 6);\
    do \
    mkdir -p /usr/local/docker/redis/node-${index}/conf
    touch /usr/local/docker/redis/node-${index}/conf/redis.conf
    cat << EOF >> /usr/local/docker/redis/node-${index}/conf/redis.conf
    port 6379
    bind 0.0.0.0
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    cluster-announce-ip 172.38.0.1${index}
    cluster-announce-port 6379
    cluster-announce-bus-port 16379
    appendonly yes
    EOF
    done# 2. 查看相应的文件是否成功,配置文件是否正常写入
    [root@localhost redis]# pwd
    /usr/local/docker/redis
    [root@localhost redis]# ll
    总用量 0
    drwxr-xr-x. 3 root root 18 12月 18 00:59 node-1
    drwxr-xr-x. 3 root root 18 12月 18 00:59 node-2
    drwxr-xr-x. 3 root root 18 12月 18 00:59 node-3
    drwxr-xr-x. 3 root root 18 12月 18 00:59 node-4
    drwxr-xr-x. 3 root root 18 12月 18 00:59 node-5
    drwxr-xr-x. 3 root root 18 12月 18 00:59 node-6# 3. 启动6个redis。注意ip的配置。注意docker数据文件和配置文件挂载到宿主机。下面的内容可以直接复制到xshell里面执行
    for index in $(seq 1 6);\
    do \
    docker run -p 637${index}:6379 -p 1637${index}:16379 --name redis-${index} \
    -v /usr/local/docker/redis/node-${index}/data:/data \
    -v /usr/local/docker/redis/node-${index}/conf/redis.conf:/etc/redis/redis.conf \
    -d --net redis --ip 172.38.0.1${index} redis:5.0.14 redis-server /etc/redis/redis.conf
    done# 4. 查看redis是否启动成功,没啥大问题的话,docker ps 我们可以看到我们启动了6个redis
    [root@localhost redis]# docker ps 
    1. 创建集群

    创建集群,我们需要进入容器里面输入命令:redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

    # 1. 创建集群,这里我们有6个redis,我们随便进入一个redis里面配置,比如这里我们进入redis-1里面配置  docker exec -it redis-1 /bin/sh 进入容器
    [root@localhost redis]# docker exec -it redis-1 /bin/sh# 进入容器之后,输入命令 redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
    # 执行过程中,提示输入的时候,输入yes
    # redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
    >>> Performing hash slots allocation on 6 nodes...
    Master[0] -> Slots 0 - 5460
    Master[1] -> Slots 5461 - 10922
    Master[2] -> Slots 10923 - 16383
    Adding replica 172.38.0.15:6379 to 172.38.0.11:6379
    Adding replica 172.38.0.16:6379 to 172.38.0.12:6379
    Adding replica 172.38.0.14:6379 to 172.38.0.13:6379
    M: b5afda552e13a82efcbad213159a5f51b1ff5e9e 172.38.0.11:6379slots:[0-5460] (5461 slots) master
    M: db1d24dd03af679c59543807b918496d185246ec 172.38.0.12:6379slots:[5461-10922] (5462 slots) master
    M: b33635d04f16c013c85c69bfda59f810a2c63421 172.38.0.13:6379slots:[10923-16383] (5461 slots) master
    S: e15110b81065f8a882115f068026785803a1e4e1 172.38.0.14:6379replicates b33635d04f16c013c85c69bfda59f810a2c63421
    S: 5ea19fe52c450aea5e18c74f8086b9d35ed7183e 172.38.0.15:6379replicates b5afda552e13a82efcbad213159a5f51b1ff5e9e
    S: 79ae80b43bdbc7eb7acf0ba3965bd1077c9a6d79 172.38.0.16:6379replicates db1d24dd03af679c59543807b918496d185246ec
    Can I set the above configuration? (type 'yes' to accept): yes
    >>> Nodes configuration updated
    >>> Assign a different config epoch to each node
    >>> Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join
    ..
    >>> Performing Cluster Check (using node 172.38.0.11:6379)
    M: b5afda552e13a82efcbad213159a5f51b1ff5e9e 172.38.0.11:6379slots:[0-5460] (5461 slots) master1 additional replica(s)
    M: b33635d04f16c013c85c69bfda59f810a2c63421 172.38.0.13:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)
    M: db1d24dd03af679c59543807b918496d185246ec 172.38.0.12:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)
    S: 79ae80b43bdbc7eb7acf0ba3965bd1077c9a6d79 172.38.0.16:6379slots: (0 slots) slavereplicates db1d24dd03af679c59543807b918496d185246ec
    S: 5ea19fe52c450aea5e18c74f8086b9d35ed7183e 172.38.0.15:6379slots: (0 slots) slavereplicates b5afda552e13a82efcbad213159a5f51b1ff5e9e
    S: e15110b81065f8a882115f068026785803a1e4e1 172.38.0.14:6379slots: (0 slots) slavereplicates b33635d04f16c013c85c69bfda59f810a2c63421
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK]# 2. 查看集群是否创建成功,进入容器,连接redis,cluster nodes查看集群信息
    [root@localhost redis]# docker exec -it redis-1 /bin/sh
    # redis-cli
    127.0.0.1:6379> cluster nodes
    b33635d04f16c013c85c69bfda59f810a2c63421 172.38.0.13:6379@16379 master - 0 1639808016802 3 connected 10923-16383
    db1d24dd03af679c59543807b918496d185246ec 172.38.0.12:6379@16379 master - 0 1639808017000 2 connected 5461-10922
    79ae80b43bdbc7eb7acf0ba3965bd1077c9a6d79 172.38.0.16:6379@16379 slave db1d24dd03af679c59543807b918496d185246ec 0 1639808017805 6 connected
    5ea19fe52c450aea5e18c74f8086b9d35ed7183e 172.38.0.15:6379@16379 slave b5afda552e13a82efcbad213159a5f51b1ff5e9e 0 1639808017000 5 connected
    b5afda552e13a82efcbad213159a5f51b1ff5e9e 172.38.0.11:6379@16379 myself,master - 0 1639808016000 1 connected 0-5460
    e15110b81065f8a882115f068026785803a1e4e1 172.38.0.14:6379@16379 slave b33635d04f16c013c85c69bfda59f810a2c63421 0 1639808016600 4 connected
    127.0.0.1:6379> 

基于Docker的Redis集群搭建相关推荐

  1. 基于Docker的Redis集群简单搭建

    环境:Docker + ( Redis:5.0.5 * 3 ) 1.拉取镜像 docker pull redis:5.0.5 2.创建Redis容器 创建三个 redis 容器: redis-node ...

  2. docker 完成 redis集群搭建

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  3. 基于docker的storm集群搭建

    基于docker的storm集群搭建 一.创建docker容器 1.创建storm的局域网 2.创建主节点的容器 3.创建从节点容器 4.配置hosts文件 二.搭建zookeeper集群 1.配置j ...

  4. docker 实现redis集群搭建

    摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群. 首先,我们需要理论知识:Redis Cluster是Re ...

  5. docker redis 删除集群_基于Docker的Redis集群实践

    单机版的Redis相信大家都比较熟悉了,这里介绍几种Redis的集群模式,并结合Docker来进行实践操作 abstract.png 准备工作 通过Docker下载最新的Redis镜像 # 获取red ...

  6. 基于大数据平台的毕业设计01:基于Docker的HDP集群搭建

    前言 好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做.这个可以参考之前写得关于我大数据毕业设计的文章基于大数据平台的毕业设计.这篇文章是将对之前的毕设进行优化. 个人觉得可以分为两个部分. ...

  7. 基于docker的hadoop集群搭建

    最近想学习如何使用hdfs来存储文件,在网上学习了一下,明确了HDFS(Hadoop Distribute File System 分布式存储).mapReduce(分布式计算).YARN(Yet A ...

  8. Redis 集群搭建(三):Docker 部署 Redis + Sentinel 高可用集群

    Redis 集群搭建(三):Docker 部署 Redis + Sentinel 高可用集群 前言 建议 官方译文 什么是 Sentinel? Sentinel 优点 Redis 配置文件 maste ...

  9. Redis集群搭建(基于6.2.6版本)

    前言 Redis 在我们工作中使用非常广泛,之前在掘金平台上写过一篇Redis集群的搭建,但是是基于4.0.14版本的,使用的是redis-trib.rb进行搭建的,Redis5之后 推荐使用 red ...

  10. 基于虚拟机高可用redis集群搭建

    redis集群搭建 介绍 刚开始学习 redis集群搭建可能会被繁琐的配置劝退,但重复配置是我们敲代码路上最平坦的一条路了,希望晨雨和大家以后都有足够的耐心,学好技术,装好B格.本文基于redis-5 ...

最新文章

  1. laravel authorize(授权)
  2. MATLAB中K-means函数表达方式
  3. MKL学习——功能简介
  4. ubuntu下查看window下文本文件乱码的解决方法
  5. 用户生命周期常用指标_生命周期管理工具如何使用指标
  6. 吃鸡11月15服务器维护,绝地求生11月20日维护到几点 11.20吃鸡更新维护公告
  7. 洛谷 P2515 [HAOI2010]软件安装 解题报告
  8. ubuntu16.04下ROS操作系统学习笔记(三 / 四)ROS基础-ROS中的关键组件
  9. How to Run Mac OS X in VirtualBox on Windows
  10. 使用系统定时器SysTick实现精确延时微秒和毫秒函数
  11. 【转】基于nginx + lua实现的反向代理动态更新
  12. 维汉语音翻译android,维汉语音翻译助手
  13. 哲学家进餐问题 C++实现
  14. php+redis+保存多个值,php向redis list一次性lPush多个值
  15. python PIL Image 图片叠图、拼接,图片透明度调整 案例
  16. Wuli智能无限的机器人已经上场了,人类律师快靠边站
  17. css 软键盘,移动端键盘,数字键盘效果实现
  18. Swift 编程语言入门教程
  19. HTTP协议的默认端口是什么?底层原理是什么?
  20. 2022氯化工艺特种作业证考试题库及答案

热门文章

  1. 奇技淫巧之dummy网卡
  2. 西门子840d备份到u盘_西门子840D数控系统备份及恢复方法(三)
  3. 为什么阿里不推荐使用MySQL分区表?
  4. 脑袋里是浆糊时的c++程序
  5. 基于JSP的鲜花店商城平台【数据库设计、源码、开题报告】
  6. 基于机器学习进行销售预测分析
  7. 闷声发大财,中国 App 出海编年史及方法论
  8. 织梦php环境搭建,织梦建站入门:搭建本地PHP环境图文教程
  9. 如何在EXCEL里画正态分布图
  10. java猜拳_Java猜拳小游戏(剪刀、石头、布)