广告
返回顶部
首页 > 资讯 > 后端开发 > Python >docker redis4.0集群搭建
  • 906
分享到

docker redis4.0集群搭建

集群docker 2023-01-31 08:01:02 906人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云(Centos7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地方是他在搭建过程中,指出一些我们会遇到而别人没有指

Redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云Centos7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地方是他在搭建过程中,指出一些我们会遇到而别人没有指出的问题。

在这里,我同样带给大家一遍关于阿里云(centOS7)redis集群搭建的文章,但是这次搭建有所不同的是,它是在Docker上搭建的redis集群。

 

环境说明

采用单机部署

操作系统ipdocker版本redis版本
centos 7.6192.168.31.150

19.03.5

4.0.10

 

 

 

 

docker pull redis:4.0.10docker pull ruby

说明:ruby用是来做加入集群的用的,仅一次使用。

 

创建redis配置文件

mkdir -p /data/redis-cluster
vi /data/redis-cluster/redis-cluster.tmpl

内容如下:

port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.31.150
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly no

注意:ip地址修改为本机ip

 

配置文件解释

port ${PORT}                        ##节点端口
protected-mode no                   #关闭protected-mode模式,外部网络可以直接访问
cluster-enabled yes                 ##cluster集群模式
cluster-config-file nodes.conf      ##集群配置名
cluster-node-timeout 5000           ##超时时间
cluster-announce-ip 192.168.31.150  ##实际为各节点网卡分配ip  先用上网关ip代替
cluster-announce-port ${PORT}       ##节点映射端口
cluster-announce-bus-port 1${PORT}  ##节点总线端
appendonly no                      ##持久化模式

 备注:此模版文件为集群节点通用文件 其中${PORT} 将读取命令行变量

 

创建自定义network

docker network create redis-net

 

生成配置文件

生成conf和data目录,并生成配置信息

for port in `seq 7000 7005`; do \
  mkdir -p ./${port}/conf \
  && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
  && mkdir -p ./${port}/data; \
done

共生成6个文件夹,从7000到7005,每个文件夹下包含data和conf文件夹,同时conf里面有redis.conf配置文件

 

创建容器

创建6个redis容器

for port in `seq 7000 7005`; do \
  docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \
  -v /data/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v /data/redis-cluster/${port}/data:/data \
  --restart always --name redis-${port} --net redis-net \
  --sysctl net.core.somaxconn=1024 redis:4.0.10 redis-server /usr/local/etc/redis/redis.conf; \
done

至此,通过命令docker ps可查看刚刚生成的6个容器信息

 

通过启动ruby来实现集群

echo yes | docker run -i --rm --net redis-net ruby sh -c '\
  gem install redis \
  && wget Http://download.redis.io/releases/redis-4.0.10.tar.gz \
  && tar xvf redis-4.0.10.tar.gz && cd redis-4.0.10/src \
  && ruby redis-trib.rb create --replicas 1 \
  '"$(for port in `seq 7000 7005`; do \
    echo -n "$(docker inspect --fORMat '{{ (index .networkSettings.Networks "redis-net").IPAddress }}' "redis-${port}")":${port} ' ' ; \
  done)"

它其实就是调用了命令:

ruby redis-trib.rb create --replicas 1 172.18.0.2:7000  172.18.0.3:7001  172.18.0.4:7002  172.18.0.5:7003  172.18.0.6:7004  172.18.0.7:7005

输出如下:

...
>>> 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.18.0.2:7000)
M: a779c88a19a2582620d0a1ad3f90431f92f91af5 172.18.0.2:7000
   slots:0-5460 (5461 slots) master
additional replica(s)
M: 880a2b0671d0ff15192e758ff7204ccf15f52cd0 192.168.31.150:7002
   slots:10923-16383 (5461 slots) master
additional replica(s)
S: 3b04d5b6bcd86efaaceb2002087729bcb9bb1c07 192.168.31.150:7005
   slots: (0 slots) slave
   replicates 5e33b75081c76bfc677e1941fdc2577709280f77
M: 5e33b75081c76bfc677e1941fdc2577709280f77 192.168.31.150:7001
   slots:5461-10922 (5462 slots) master
additional replica(s)
S: dad167c467186794e5095b58a0f43e443ff692fb 192.168.31.150:7003
   slots: (0 slots) slave
   replicates 880a2b0671d0ff15192e758ff7204ccf15f52cd0
S: fa3775cbcdd0512de4fe2c208de1046b5369e0b3 192.168.31.150:7004
   slots: (0 slots) slave
   replicates a779c88a19a2582620d0a1ad3f90431f92f91af5
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

 

能看到3主3从,说明集群成功了。

查看集群信息

# docker exec -it redis-7000 /bin/bash -c "redis-cli -p 7000 cluster nodes"
880a2b0671d0ff15192e758ff7204ccf15f52cd0 192.168.31.150:7002@17002 master - 0 1573806315290 3 connected 10923-16383
3b04d5b6bcd86efaaceb2002087729bcb9bb1c07 192.168.31.150:7005@17005 slave 5e33b75081c76bfc677e1941fdc2577709280f77 0 1573806316296 6 connected
5e33b75081c76bfc677e1941fdc2577709280f77 192.168.31.150:7001@17001 master - 0 1573806315000 2 connected 5461-10922
dad167c467186794e5095b58a0f43e443ff692fb 192.168.31.150:7003@17003 slave 880a2b0671d0ff15192e758ff7204ccf15f52cd0 0 1573806316800 4 connected
fa3775cbcdd0512de4fe2c208de1046b5369e0b3 192.168.31.150:7004@17004 slave a779c88a19a2582620d0a1ad3f90431f92f91af5 0 1573806316000 5 connected
a779c88a19a2582620d0a1ad3f90431f92f91af5 192.168.31.150:7000@17000 myself,master - 0 1573806315000 1 connected 0-5460

 

测试写入和读取

# docker exec -it redis-7000 /bin/bash
127.0.0.1:7000> set a 123
-> Redirected to slot [15495] located at 192.168.31.150:7002
OK
192.168.31.150:7002> get a
“123”
192.168.31.150:7002>

 

本文参考链接:
https://www.cnblogs.com/lianggp/articles/8136222.html
https://blog.csdn.net/qq_22211217/article/details/80436996

 

注意:参考链接中的redis-trib.rb,不能使用了。已经更新了!

所以,必须得用redis源码中的redis-trib.rb


--结束END--

本文标题: docker redis4.0集群搭建

本文链接: https://www.lsjlt.com/news/193602.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • docker redis4.0集群搭建
    redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云(centOS7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地方是他在搭建过程中,指出一些我们会遇到而别人没有指...
    99+
    2023-01-31
    集群 docker
  • docker怎么搭建redis集群
    要搭建Redis集群,可以使用Docker来简化部署过程。下面是一些搭建Redis集群的步骤: 首先,确保已经安装了Docker...
    99+
    2023-10-26
    docker redis
  • 基于Docker搭建iServer集群
    目录前言一、安装Docker二、下载 iServer 镜像三、启动iServer四、发布服务五、搭建集群前言 Linux容器虚拟技术(LXC,Linux Container)是一种轻...
    99+
    2022-11-13
  • Docker Redis 5.0 集群(cluster)搭建
    一、准备工具 安装docker(来自官网) (1) 安装所需的软件包 $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 (2) 使用以下命令来设置稳定...
    99+
    2015-01-06
    Docker Redis 5.0 集群(cluster)搭建
  • docker如何搭建redis集群
    要搭建Redis集群,可以使用Docker来进行部署。下面是一种常见的方法:1. 创建一个文件夹,在文件夹中创建一个名为`docke...
    99+
    2023-08-23
    docker redis
  • docker mysql集群怎么搭建
    要搭建Docker MySQL集群,可以按照以下步骤进行操作: 安装Docker:在每个节点上安装Docker引擎。 创建D...
    99+
    2023-10-27
    docker mysql
  • docker如何搭建kafka集群
    本文小编为大家详细介绍“docker如何搭建kafka集群”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker如何搭建kafka集群”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、原生Docker命令 ...
    99+
    2023-06-30
  • 怎么用docker搭建elasticsearch集群
    本篇内容主要讲解“怎么用docker搭建elasticsearch集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用docker搭建elasticsearch集群”吧!概述用docker进...
    99+
    2023-06-19
  • Docker上实现Redis集群搭建
    目录1、拉取镜像2、创建Redis容器3、启动并组建集群启动容器4、存在的问题环境:Docker + ( Redis:5.0.5 * 3 ) 1、拉取镜像 docker pull...
    99+
    2022-11-12
  • docker zookeeper集群搭建的方法
    本篇内容主要讲解“docker zookeeper集群搭建的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker zookeeper集群搭建的方法”吧!准备工具一、安装docker 二...
    99+
    2023-06-19
  • Docker-Compose如何搭建Redis集群
    本篇内容介绍了“Docker-Compose如何搭建Redis集群”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 集群配置3主+3从由于...
    99+
    2023-07-05
  • Docker容器怎么搭建Kafka集群
    本篇内容介绍了“Docker容器怎么搭建Kafka集群”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Kafka集群的搭建1.拉取相关镜像...
    99+
    2023-06-29
  • 怎么用Docker-Compose搭建Spark集群
    这篇文章主要讲解了“怎么用Docker-Compose搭建Spark集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Docker-Compose搭建Spark集群”吧!docker-...
    99+
    2023-06-30
  • docker搭建Zookeeper集群的方法步骤
    目录0.前言1.前提2.开始搭建解释创建zoo.cfg3.docker搭建1.docker创建网络2.启动第1个zk节点3.启动第2个zk节点4.启动第3个zk节点4.访问节点1.进...
    99+
    2022-11-13
  • Docker搭建RabbitMQ集群的方法步骤
    目录集群模式介绍1、普通集群的搭建1.1、普通集群架构介绍1.2、环境准备1.3、集群搭建2、镜像集群的搭建2.1、配置镜像集群的策略集群模式介绍 RabbitMQ集群模式有两种:普...
    99+
    2022-11-12
  • docker集群搭建的步骤是什么
    搭建Docker集群的步骤如下:1. 安装Docker:在每个节点上安装Docker引擎,可以根据不同的操作系统选择合适的安装方式进...
    99+
    2023-08-23
    docker
  • docker搭建kafka集群的方法实现
    目录一、原生Docker命令二、镜像选择三、集群规划四、Zookeeper集群安装五、Kafka集群安装一、原生Docker命令 1. 删除所有dangling数据卷(即无用的Vol...
    99+
    2022-11-13
  • 怎么使用docker compose搭建etcd集群
    本文小编为大家详细介绍“怎么使用docker compose搭建etcd集群”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用docker compose搭建etcd集群”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-02
  • 集群搭建
      1.  集群搭建之主从复制 MySQL主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。 1.1   主服务器的配置 1.1.1   第一步:修改my.con...
    99+
    2017-09-01
    集群搭建
  • docker搭建Mysql集群的方法是什么
    本文小编为大家详细介绍“docker搭建Mysql集群的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker搭建Mysql集群的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作