腾讯云轻量服务器通过Docker搭建外网可访问连接的redis5.x集群

原创/朱季谦

最近买了一台4核16的腾讯云轻量应用服务器,花了我快四百的大洋,打算搭建一堆docker组件集群,最先开始是通过docker搭建redis集群,计划使用三个端口,分别是7001,7002,7003。

腾讯云服务器有防火墙限制,故而需要在控制面板的防火墙开放这六个端口——

image


注意,为什么开放了7001,7002,7003,还需要开放它们对应的总线端口17001,17002,17003呢?因为这是它们集群心跳连接的端口,若不开放,将在对各启动容器节点创建集群时,会创建集群分配槽时失败。

完成这一步后,就可以开始通过docker拉取redis的镜像了,这里拉取的是redis:5.0.5版本——

docker pull redis:5.0.5

创建redis-template.conf模板,将根据该模板自动生成各节点对应的redis.conf文件——

mkdir /app/redis && cd /app/redis && mkdir redis-cluster && cd ./redis-cluster && touch redis-template.conf

接着,修改redis-template.conf模板文件内容,直接使用vi redis-template.conf指令——

image


输入以下内容即可——

#节点端口
port ${PORT}
#设置为集群节点
cluster-enabled yes
#外网连接必须设置为 no
protected-mode no
#集群节点文件
cluster-config-file nodes.conf
cluster-node-timeout 5000
#改成你的外网ip,假设,我的腾讯云服务器外网ip是14.253.73.xx
cluster-announce-ip 14.253.73.xx
#外网端口
cluster-announce-port ${PORT}
#总线端口
cluster-announce-bus-port 1${PORT}

appendonly yes

docker中创建一个redis集群专用的网络redis-net供集群使用

docker network create redis-net

进入到存放redis-template.conf模板文件的目录下——

cd /app/redis/redis-cluster/

直接在命令行中复制以下指令,然后回车执行——

for port in `seq 7001 7003`; do 
  mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-template.conf > ./${port}/conf/redis.conf && mkdir -p ./${port}/data;
done

执行完后,通过指令ll查看,发现自动生成了7001~7003的目录——
 

image


接着,直接复制以下指令——

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

回车后,即可自动启动docker容器实例——
 

image


正常启动成功话,通过docker ps -a指令查看,显示以下信息——

image


这时候,我们只需要进入到其中一个docker容器的redis中,将各节点组成集群,这里进入到redis-7001容器中——

docker exec -it redis-7001 /bin/bash

接着执行以下指令即可——

redis-cli --cluster create 外网ip:7001 外网ip:7002 外网ip:7003  --cluster-replicas 0

注意:后续若改成三主三从时,这里的集群指令为——

redis-cli --cluster create 外网ip:7001 外网ip:7002 外网ip:7003 外网ip:7004 外网ip:7005 外网ip:7006 --cluster-replicas 1

当出现以下请求时,直接填写 yes 即可——

Can I set the above configuration? (type 'yes' to accept): yes

最后启动成功后,会出现以下信息——

image


这时,我们可以测试一下,通过指令 redis-cli -c -h 外网IP -p 7001连接到集群节点上,正常连接上去后,再通过指令cluster info查看集群状态,显示ok说明集群正常,这时还可以通过cluster nodes查看各节点具体槽分配信息——
 

image


到这一步,通过springboot+redis即可连接到腾讯云服务器上docker部署的redis集群了,我测试验证可行——

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/195920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

建议收藏:华为海思IC设计笔试题,含解析(附下载)

华为海思一直以来是从业者想要进入的热门公司。但是岗位就那么多&#xff0c;在面试的时候&#xff0c;很多同学因为准备不充分&#xff0c;与岗位失之交臂&#xff0c;无缘进入该公司。今天为大家带来华为海思芯片岗的真题解析&#xff0c;如有错漏&#xff0c;欢迎指正哈。 今…

大数据平台/大数据技术与原理-实验报告--MapReduce编程

实验名称 MapReduce编程 实验性质 &#xff08;必修、选修&#xff09; 必修 实验类型&#xff08;验证、设计、创新、综合&#xff09; 综合 实验课时 2 实验日期 2023.10.30-2023.11.03 实验仪器设备以及实验软硬件要求 专业实验室&#xff08;配有centos7.5系统…

Vue3-VueRouter4路由语法解析

1.创建路由实例由createRouter实现 2.路由模式 1&#xff09;history模式使用createWebHistory()&#xff1a;地址栏不带# 2&#xff09;hash模式使用createWebHashHistory()&#xff1a;地址栏带# 3&#xff09;参数是基础路径&#xff0c;默认/ 括号里的就是设置路径的前…

实战中使用的策略模式,使用@ConditionalOnProperty实现根据环境注册不同的bean

场景复现 举个例子&#xff0c;针对不同的设备的内存的不同加载一些资源的时候需要采取不同的策略&#xff0c;比如&#xff0c;在内存比较大的设备&#xff0c;可以一次性加载&#xff0c;繁殖需要使用懒加载&#xff0c;这个时候我们就可以采用配置文件配置中心去控制了 Cond…

使用Zoho Projects项目管理系统进行研发排期的策略与方法

研发排期旨在有序地填充待开发的就绪队列&#xff0c;明确最近的发布计划&#xff0c;让准备就绪的需求如行云流水般进入开发阶段。 使用Zoho Projects项目管理系统进行研发排期的步骤如下&#xff1a; 1.创建项目&#xff1a; 登录Zoho Projects账户&#xff0c;创建一个新项…

如何使用 Java 在Excel中创建下拉列表

下拉列表&#xff08;下拉框&#xff09;可以确保用户仅从预先给定的选项中进行选择&#xff0c;这样不仅能减少数据输入错误&#xff0c;还能节省时间提高效率。在MS Excel中&#xff0c;我们可以通过 “数据验证” 提供的选项来创建下拉列表&#xff0c;但如果要在Java程序中…

SRGAN 使用指南:将低分辨率图像转换为高分辨率图像

SRGAN、ESRGAN、Real-ESRGAN 使用指南 SRGAN网络结构优化目标 ESRGANReal-ESRGAN SRGAN 超分辨率&#xff1a;从低分辨率(LR)图像来估计其对应高分辨率(HR)图像的任务&#xff0c;被称作超分辨率(SR)。 SRGAN 图像超分辨率的深度学习模型&#xff0c;通过生成对抗网络&#x…

ESP32-Web-Server编程-HTML 基础

ESP32-Web-Server编程-HTML 基础 概述 HTML(HyperText Markup Language) 是用来描述网页的一种语言。其相关内容存储在前端代码的 .html 文件中。 当浏览器向 web 服务器请求网页时&#xff0c;一个 HTML 文件被发送给浏览器&#xff0c;浏览器解释该文件的内容&#xff0c;…

Java核心知识点整理大全20-笔记

目录 17. 设计模式 17.1.1. 设计原则 17.1.24. 解释器模式 18. 负载均衡 18.1.1.1. 四层负载均衡&#xff08;目标地址和端口交换&#xff09; 18.1.1.2. 七层负载均衡&#xff08;内容交换&#xff09; 18.1.2. 负载均衡算法/策略 18.1.2.1. 轮循均衡&#xff08;Roun…

Nginx-进程

Nginx-相关问题_01 Windows关闭所有nginx服务 windows 系统下开发调试时不用每次频繁的 启动->任务管理器->查找进程->结束进程&#xff01; 查看nginx的进程占用情况 tasklist | find /i "nginx.exe" || exit关闭nginx的所有进程 taskkill /im nginx.…

iOS-打包上架构建版本一直不出现/正在处理/自动消失

iOS开发过程中&#xff0c;打包上架苹果审核是一个不可或缺的环节。说实话&#xff0c;这个问题我遇见两次了&#xff0c;为了让自己长点记性&#xff0c;决定写下来。首先&#xff0c;列举几种情况&#xff1a; 1.iPa包上传至App store后&#xff0c;一个小时内不显示构建版本…

[UGUI]Unity背包系统制作详细步骤

二、背包制作 1.创建空物体&#xff0c;然后创建UI-Image 制作背包整个背包所在的父UI的背景图 选中BG&#xff0c;找到他的锚点设置&#xff0c;按住Alt键&#xff0c;点击右下角的适配&#xff0c;让锚点和内容都匹配画布 PS&#xff1a;不按Alt键是设置一个元素的锚点位…

Go 数组

一、数组介绍 1、Array 介绍 数组是指一系列同一类型数据的集合数组中包含的咩个数据被成为数组元素&#xff08;element&#xff09;&#xff0c;这种类型可以是任意的原始类型&#xff0c;比如 int、string 等一个数组包含的元素格式被称为数组的长度在 Golang 中数组是一个…

基于可穿戴的健康监护终端--研究进展报告

基于可穿戴的健康监护终端--研究进展报告 1 引言2 传感器介绍2.1 呼吸速率传感器2.2 温度传感器2.3 心脏跳动传感器 3 论文介绍3.1 Effective Data Decision-Making and Transmission System Based on Mobile Health for Chronic Disease Management in the Elderly3.2 Design …

Android 编译的配置文件:android.mk 和android.bp

Android.bp文件首先是Android系统的一种编译配置文件&#xff0c;是用来代替原来的Android.mk文件的。在Android7.0以前&#xff0c;Android都是使用make来组织各模块的编译&#xff0c;对应的编译配置文件就是Android.mk。在Android7.0开始&#xff0c;Google引入了ninja和kat…

C# 实现微信退款及对帐

目录 需求 基础准备 关键代码 操作界面 ​编辑 退款订单类及方法 退款功能实现 对帐 支付商家后台相关要点 实时交易帐单查询 精确交易帐单查询 小结 需求 在招聘报名系统里&#xff0c;考务费支付是其中一个环节&#xff0c;支付方式很多种&#xff0c;比如银联、…

基于单片机的智能饮水机控制系统(论文+源码)

1. 系统设计 本次智能饮水机控制系统的设计研究一款以STC89C52单片机为核心的智能饮水机控制系统&#xff0c;其主要功能设计如下&#xff1a; 1.该饮水机利用DS18B20数字温度传感器实时采集饮水机内水的温度&#xff0c;其检测温度范围为0-100℃&#xff0c;精度0.1℃&#…

单片机薪资翻倍的学习方向

今天以一个案例&#xff0c;给大家分析下做单片机开发&#xff0c;薪资翻倍的底层逻辑和方法论&#xff0c;尽量做到有理有据。 我是2011年开始做单片机开发的&#xff0c;那几年&#xff0c;单片机的工资&#xff0c;可以说是惨不忍睹。 相关贴吧也是一片哀嚎&#xff0c;有些…

Flutter 桌面应用开发之读写Windows注册表

文章目录 需求来源Windows查询Windows版本号方法1. 如何查看Windows版本号2. Windows开发如何通过代码查询Windows版本号(1) 使用C#代码&#xff1a;(2) 使用VB.NET代码 3.通过注册表查看Windows版本信息 Flutter查询Windows版本号方法依赖库支持平台实现步骤1. 在pubspec.yaml…