美文网首页redisMysqldb
Redis集群部署-docker集群

Redis集群部署-docker集群

作者: _str_ | 来源:发表于2019-11-27 19:58 被阅读0次

集群

1.Redis 集群的优势

自动分割数据到不同的节点上。
整个集群的部分节点失败或者不可达的情况下能够继续处理命令。

特点

主从复制

实现了高可用

数据分片存储

集群节点的 meet 过程

image image

指派槽

image

客户端和槽

image

3. Redis 集群的安装

原生命令安装

步骤

  1. 配置开启集群节点

  2. 配置 meet

  3. 指派槽

  4. 配置主从

实例操作

六个容器
三个主
三个从
务必保证一个主有一个从

架构图
image

实验步骤

安装官方工具

  • 首先使用docker镜像起一个centos镜像 里面已经装有 redis 并且进入

1. 下载、编译、安装 Ruby

点我到下载页面

[root@s1 ~]# wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.gz

安装依赖包

yum  install  zlib-devel readline openssl-devel gcc  gcc-c++ make

点我查看具体安装方法

$ ./configure
$ make
$ sudo make install

2. 安装 rubygem redis

一个 ruby 语言实现的访问 Redis 集群的客户端

点我到官网下载地址

cd ..
 wget https://rubygems.org/rubygems/rubygems-3.0.2.tgz
 tar -xf rubygems-3.0.2.tgz
cd rubygems-3.0.2/
ruby setup.rb

gem install redis

3. 安装 redis-trib.rb

这里的redis是源码安装
redis-trib 位于 Redis 源码的 src 文件夹中, 它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群, 检查集群, 或者对集群进行重新分片(reshared)等工作。

cp   ~/redis-4.0.10/src/redis-trib.rb   /usr/local/bin/
如果是使用yum安装的redis的话 下面可能帮到你

点击到github下载redis-trib.rb

image.png image.png

放到和之前源码一样的位置即可

编辑集群配置文件

vi /etc/redis-cluster.conf

bind 0.0.0.0
port 7001  ---容器的话就不需要修改端口
daemonize yes    --- 后台启动

# 允许任何地址不使用密码访问我
protected-mode yes
dir "/redis/data/"
logfile  "cluster-7001.log"
dbfilename "cluster-dump-7001.log"
cluster-enabled yes
cluster-config-file redis-cluster.conf

# 不需要集群的全部节点完好才提供服务
cluster-require-full-coverage no

然后就可以启动服务了

redis-server /etc/redis-cluster.conf
image.png

最后把这个部署好的容器进行commit成本地镜像

docker commit 容器名/容器id  redis-cluster

接下来我们就可使用docker-compose来进行集群启动

version: "3.2"
services: 
   redis-clu-m1:
      image: redis-ruby:latest
      container_name: redis-clu-m1
      expose:
        - "6379"
      networks:
        - cmdb_jumpserver-test
      tty: true
   redis-clu-m2:
      image: redis-ruby:latest
      container_name: redis-clu-m2
      expose:
        - "6379"
      networks:
        - cmdb_jumpserver-test
      tty: true
   redis-clu-m3:
      image: redis-ruby:latest
      container_name: redis-clu-m3
      expose:
        - "6379"
      networks:
        - cmdb_jumpserver-test
      tty: true
   redis-clu-s1:
      image: redis-ruby:latest
      container_name: redis-clu-s1
      expose:
        - "6379"
      networks:
        - cmdb_jumpserver-test
      tty: true
   redis-clu-s2:
      image: redis-ruby:latest
      container_name: redis-clu-s2
      expose:
        - "6379"
      networks:
        - cmdb_jumpserver-test
      tty: true
   redis-clu-s3:
      image: redis-ruby:latest
      container_name: redis-clu-s3
      expose:
        - "6379"
      networks:
        - cmdb_jumpserver-test
      tty: true
networks:
   cmdb_jumpserver-test:
     external:
       name: cmdb_jumpserver-test

注意:这里使用同一个网络便于容器之间通信,镜像不加标签默认是latest,最后的网络external代表着使用额外的网络名 tty:true让这个几个容器在启动后将这个终端给占住,不然会异常退出

这样在启动完docker-compose后我们就可以进入到容器中让每个redis-server启动

docker-compose exec  redis-clu-m2 redis-server /etc/redis-cluster.conf
依次执行 只需要换个服务名即可

选择一个服务器容器来进行集群部署 这里我们选择的是redis-clu-m1来部署

redis-trib.rb  create  --replicas  1  主节点1的IP:端口    主节点2的IP:端口    主节点3的IP:端口   从节点1的IP:端口    从节点2的IP:端口    从节点3的IP:端口  
依次将主从写到后面 待会会一一对应
注意这儿不能使用容器名 不解析  需要提前将各个容器的ip地址给找出来

在redis-clu-m1中执行的命令

[root@3604a0ecd95c /]# redis-trib.rb create --replicas 1 172.29.0.6:6379 172.29.0.7:6379 172.29.0.4:6379 172.29.0.5:6379 172.29.0.3:6379 172.29.0.2:6379
-因为docker-compose是随机启动的 所以这里面的ip地址不会按顺序

下面是执行的结果展示

集群配置 成功后的标志 检查节点信息
在那个服务器上都可以查到,在任意服务器上能查任意的节点

相关文章

  • 单机(win10)使用Docker搭建Redis集群(Redis

    搭建过程参考:使用Docker搭建Redis集群(Redis Sentinel 集群部署) 概述 Redis 集群...

  • Docker环境搭建redis集群(主从模式)

    Docker环境搭建redis集群(主从模式) 序 本文将介绍如何在docker中部署redis集群(主从模式)。...

  • Centos7使用docker

    主要记录docker的使用,安装mysql集群,redis集群,以及前后端项目部署。 Centos安装Docker...

  • Docker搭建Redis Cluster

    为了体验Redis集群,并且为了便于部署所以直接使用docker部署了一个简单集群: 连接测试 通过set 命令测...

  • Redis集群部署-docker集群

    集群 1.Redis 集群的优势 自动分割数据到不同的节点上。整个集群的部分节点失败或者不可达的情况下能够继续处理...

  • Redis集群部署

    Redis集群部署 Redis集群有多种部署模式,包括主从模式、哨兵模式、集群模式 主从模式   主从模式可以是一...

  • Redis 集群规范

    redis手册Redis 集群规范Redis集群安装Redis集群安装 Redis分布式部署,一致性hash;分布...

  • 使用Docker部署RabbitMQ集群

    使用Docker部署RabbitMQ集群 概述 本文重点介绍的Docker的使用,以及如何部署RabbitMQ集群...

  • 10 Docker网络

    理解Docker0 参数--link 自定义网络 网络连通 实战:部署redis集群 理解Docker0 清空所有...

  • Redis集群Docker部署

    因机器限制,用两台主机部署一个三主三从的redis集群架构(记为1,2) 1号机部署步骤 新建redis目录 编写...

网友评论

    本文标题:Redis集群部署-docker集群

    本文链接:https://www.haomeiwen.com/subject/gheywctx.html