在阿里云服务器上搭建外网可访问的redis集群
一、阿里云服务器安全组开放端口
控制台 -> 云服务器ECS -> 实例
因为阿里云服务器自带一层防火墙,所以需要开放7001-7006、17001-17006端口(这个端口是自定义的,只要不跟其他端口冲突)
二、拉取最新版本的redis
[root@lx ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
Digest: sha256:a0494b60a0bc6de161d26dc2d2f9d2f1c5435e86a9e5d48862a161131affa6bd
Status: Image is up to date for redis:latest
docker.io/library/redis:latest
三、配置redis.conf
创建 redis 集群专属文件夹并进入该文件夹,后续所有命令均在这个文件夹下进行
[root@lx ~]# cd [root@lx ~]# mkdir redis-cluster [root@lx ~]# cd redis-cluster/ [root@lx redis-cluster]#
创建 redis-cluster.conf 文件,作为生成 redis.conf 的模板文件
[root@lx redis-cluster]# touch redis-cluster.conf [root@lx redis-cluster]# ll total 0 -rw-r--r-- 1 root root 0 Nov 9 10:32 redis-cluster.conf
vim 打开 redis-cluster.conf 文件,编写模板内容
# 服务器上的所有地址都能够访问 redis 服务 bind 0.0.0.0 # 该节点的 redis 服务端口 port ${PORT} # 开启 redis 集群模式 cluster-enabled yes # 关闭 protected-mode 模式,让外网可以直接访问 protected-mode no # 集群配置名 cluster-config-file nodes.conf # 超时时间 cluster-node-timeout 5000 # 实际给各节点网卡分配的IP(一定要是阿里云服务器的公网IP) cluster-announce-ip 47.xx.xx.xx # 节点映射端口 cluster-announce-port ${PORT} # 节点总线端口 cluster-announce-bus-port 1${PORT}
注意:
cluster-announce-ip
后面一定要是阿里云服务器的公网IP,把 47.xx.xx.xx 换成你的公网IP
[root@lx redis-cluster]#
[root@lx redis-cluster]# cat redis-cluster.conf
# 服务器上的所有地址都能够访问 redis 服务
bind 0.0.0.0
# 该节点的 redis 服务端口
port ${PORT}
# 开启 redis 集群模式
cluster-enabled yes
# 关闭 protected-mode 模式,让外网可以直接访问
protected-mode no
# 集群配置名
cluster-config-file nodes.conf
# 超时时间
cluster-node-timeout 5000
# 实际给各节点网卡分配的IP(一定要是阿里云服务器的公网IP)
cluster-announce-ip 47.xx.xx.xx
# 节点映射端口
cluster-announce-port ${PORT}
# 节点总线端口
cluster-announce-bus-port 1${PORT}
# 开启持久化
appendonly yes
通过 redis-cluster.conf 模板文件生成6个 redis 对应的 redis.conf 配置文件
for port in `seq 7001 7006`; do mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.conf > ./${port}/conf/redis.conf && mkdir -p ./${port}/data; done;
[root@lx redis-cluster]# for port in `seq 7001 7006`; do mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.conf > ./${port}/conf/redis.conf && mkdir -p ./${port}/data; done; [root@lx redis-cluster]# ll total 28 drwxr-xr-x 4 root root 4096 Nov 9 10:56 7001 drwxr-xr-x 4 root root 4096 Nov 9 10:56 7002 drwxr-xr-x 4 root root 4096 Nov 9 10:56 7003 drwxr-xr-x 4 root root 4096 Nov 9 10:56 7004 drwxr-xr-x 4 root root 4096 Nov 9 10:56 7005 drwxr-xr-x 4 root root 4096 Nov 9 10:56 7006 -rw-r--r-- 1 root root 592 Nov 9 10:51 redis-cluster.conf [root@lx redis-cluster]# tree . ├── 7001 │ ├── conf │ │ └── redis.conf │ └── data ├── 7002 │ ├── conf │ │ └── redis.conf │ └── data ├── 7003 │ ├── conf │ │ └── redis.conf │ └── data ├── 7004 │ ├── conf │ │ └── redis.conf │ └── data ├── 7005 │ ├── conf │ │ └── redis.conf │ └── data ├── 7006 │ ├── conf │ │ └── redis.conf │ └── data └── redis-cluster.conf18 directories, 7 files
四、创建redis网络
[root@lx redis-cluster]# docker network create redis-cluster
f29d1e4d18f2d1faddf44338435a5bfa80c6de2a54aafcd09d3290a675b43101
[root@lx redis-cluster]# docker network ls
NETWORK ID NAME DRIVER SCOPE
9107ad261f12 bridge bridge local
956fbaea1607 host host local
adc2616df29c none null local
f29d1e4d18f2 redis-cluster bridge local
五、启动redis
查看 redis 镜像,获取 redis 镜像 id
[root@lx redis-cluster]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 62f1d3402b78 12 days ago 104MB
启动所有 redis
for port in `seq 7001 7006`; do docker run -d -p ${port}:${port} -p 1${port}:1${port} --restart=always --name=redis-${port} --network=redis-cluster -v $PWD/${port}/conf/redis.conf:/etc/redis/redis.conf -v $PWD/${port}/data:/data [redis镜像ID] redis-server /etc/redis/redis.conf; done;
[redis镜像ID]
换成对应的 redis 镜像id,如上面的62f1d3402b78
启动所有 redis 这段代码,详细说明一下
-d
: 后台启动-p ${port}:${port}
:映射 redis 端口-p 1${port}:1${port}
:映射 redis 总线端口--restart=always
:重启--name=redis-${port}
:指定容器名称--network=redis-cluster
:使用自定义的 docker 网络-v $PWD/${port}/conf/redis.conf:/etc/redis/redis.conf
:将 redis.conf 挂载到 容器的 redis.conf-v $PWD/${port}/data:/data
:将 data 挂载到 容器的 data62f1d3402b78
:redis 镜像idredis-server /etc/redis/redis.conf
:启动 redis 服务
六、进入任意一个redis容器
[root@lx redis-cluster]# docker exec -it redis-7001 /bin/sh
七、开启集群
redis-cli --cluster create 47.xx.xx.xx:7001 47.xx.xx.xx:7002 47.xx.xx.xx:7003 47.xx.xx.xx:7004 47.xx.xx.xx:7005 47.xx.xx.xx:7006 --cluster-replicas 1
八、用 Redis Desktop Manager 测试
结束
在阿里云服务器上搭建外网可访问的redis集群相关推荐
- 新手如何在阿里云服务器上搭建自己的个人网站
新手如何在阿里云服务器上搭建自己的个人网站 如何在阿里云服务器上搭建自己的个人网站(阿里云服务器.tomcat服务.xshell+WinSCP(服务器本地助手).写好的静态网页). 本博客主要分享本人 ...
- 云服务如何搭建数据库_【MySQL8.0.18】阿里云服务器上搭建MySQL数据库
要想搭建个人博客,云服务器和数据库是少不了的.笔者选择在阿里云服务器上搭建一个MySQL数据库. 系统选用CentOS8.0,MySQL数据库版本8.0.18 一.数据库压缩包选择及下载 登录MySQ ...
- 如何在阿里云服务器上搭建mysql服务(最新版)
如何在阿里云服务器上搭建mysql服务(最新版) 准备 安装mysql服务 配置YUM源 启动mysql服务 修改root密码 修改密码策略 添加远程登录用户 注意: 1.关闭防火墙 2.在阿里云服务 ...
- nextcloud+宝塔在阿里云服务器上搭建个人云存储盘(如何在服务器上搭建个人云盘)
以下操作经实践,已成功执行实现.读者若安装失败,可在云服务器操作台上初始化云盘,再次进行重装.望读者,不畏挫折,愈败愈战,请别因为环境的安装失败影响你的学习的兴趣,不妨多次"重启试试&quo ...
- 阿里云服务器上搭建微信小程序服务端环境。
无论是搭建个人博客空间也好,微信小程序也罢,搭建环境必需的两点:云服务器.域名,下面一步步给搭建演示如果在一台阿里云服务器上搭建微信小程序服务端环境. 1.云服务器准备:可在阿里云购买ECS服务器 ...
- 阿里云mysql本地可以连接数据库_本地电脑连接阿里云服务器上搭建的MySQL数据库...
一.前言 在上一篇博客:在CentOS 7 下安装mysql5.7 我们在阿里云服务器上安装好了MySQL 5.7.那么怎样可以使我们在本地的 navicat for MySQL工具上连接并进行数据库 ...
- 阿里云服务器上搭建宝塔
首先列出需要用到的文档,大家可以先看一下,然后按照下面的操作走就可以了 宝塔命令官方文档 首先登录阿里云,找到ECS控制台 点击上图中箭头指向地方,然后查看对应的IP ,并用实例密码,使用xshell ...
- nextcloud+docker在阿里云服务器上搭建个人云存储盘(如何在服务器上搭建私有云盘)
本文旨在学习记录.下述内容是作者经历过大大小小的十来次失败总结而来,内容都是各方博客荟萃的结果,按照内容都已实践成功,若失败,只需初始化云盘,重新安装即可,无需抱疑.学习道路上难免坎坷,希望大家不畏挫 ...
- 【保姆级教程】基于WordPress在阿里云服务器上搭建个人博客网站
写之前先回答几个问题: 1,网上类似的教程非常多,为什么写这篇教程? 答:博客网站我搭建过好几次,但是每次搭建都需要再去网上搜教程:然而网上的教程坑很多,甚至有些是错误的,不能完美解决自己的问题,有时 ...
最新文章
- COM组件转换成.NET组件[转]
- linux谁动了我的服务器,linux系统监控之谁动了我的服务器?
- UICollectionView 简单使用
- 应用后台省电秘籍——低功耗状态下应用如何正常运行?
- linux防火墙文件找不到,防火墙问题 Linux系统 /etc/sysconfig/路径下无iptables文件
- bufferedreader读取中文乱码_python字符乱码的解决小结
- nginx配置---upstream
- OSChina 周三乱弹——节前综合症来袭,简直无法抵抗了
- Android 应用开发(第四章)---APP数据埋点
- git cherry pick
- mvc razor html.list,NetCore Web应用开发-HTML,C#,Razor补充
- 分享一些前端优质的掘金小册,学完技术感觉已经超神了
- CNC加工中心程序代码大全,你还不收藏吗?
- 用Gson解析json
- java系统过载保护_浅谈过载保护
- 大学生职业生涯规划书性格特征_大学生职业生涯规划书自我分析范文
- 为什么我一打开计算机windows资源管理器就停止工作?,开机后提示“Windows资源管理器已停止工作”怎么解决?...
- HHKB 键盘 配置Mac 的 command 和 切换输入法
- php+html文本域,html的文本域和表单域
- 计算机电源 4pin,用电脑电源4PIN接口做的2mm插头插座,省钱方便~