使用Docker-Compose搭建Redis集群
1. 集群配置
3主+3从
由于仅用于测试,故我这里只用1台服务器进行模拟
redis列表
2.编写redis.conf
在server上创建一个目录用于存放redis集群部署文件。这里我放的路径为/root/redis-cluster
在/opt/docker/redis-cluster目录下创建redis-1,redis-2,redis-3,redis-4,redis-5,redis-6文件夹
mkdir -p /opt/docker/redis-cluster/{redis-1,redis-2,redis-3,redis-4,redis-5,redis-6}#创建持久化目录
mkdir -p /opt/docker/redis-cluster/redis-1/data
mkdir -p /opt/docker/redis-cluster/redis-2/data
mkdir -p /opt/docker/redis-cluster/redis-3/data
mkdir -p /opt/docker/redis-cluster/redis-4/data
mkdir -p /opt/docker/redis-cluster/redis-5/data
mkdir -p /opt/docker/redis-cluster/redis-6/data
3. 在每个redis-*文件夹下创建redis.conf文件,并写入如下内容:
cluster-enabled yes # 开启集群
cluster-config-file nodes.conf # 集群配置文件
cluster-node-timeout 5000 # 集群节点多少时间未响应视为该节点丢失
appendonly yes
port 6379 # redis监听端口
masterauth passwd123 #设置master节点密码
requirepass passwd123 #设置密码
注意:port值不能都为6379,根据上面redis列表设置的端口号,依次给redis-1 ~ redis-6设置6379~6384端口号
4.编写docker-compose.yml文件
这里直接使用daocloud提供的redis镜像地址daocloud.io/library/redis:6.0.4
在/root/redis-cluster文件夹下创建docker-compose.yml文件。
docker-compose.yml文件内容如下:
version: '3.1'
services:# redis1配置redis1:image: daocloud.io/library/redis:6.0.4container_name: redis-1restart: alwaysnetwork_mode: "host"volumes:- /opt/docker/redis-cluster/redis-1/data:/data- /opt/docker/redis-cluster/redis-1/redis.conf:/usr/local/etc/redis/redis.confcommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]# redis2配置redis2:image: daocloud.io/library/redis:6.0.4container_name: redis-2restart: alwaysnetwork_mode: "host"volumes:- /opt/docker/redis-cluster/redis-2/data:/data- /opt/docker/redis-cluster/redis-2/redis.conf:/usr/local/etc/redis/redis.confcommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]# redis3配置redis3:image: daocloud.io/library/redis:6.0.4container_name: redis-3restart: alwaysnetwork_mode: "host"volumes:- /opt/docker/redis-cluster/redis-3/data:/data- /opt/docker/redis-cluster/redis-3/redis.conf:/usr/local/etc/redis/redis.confcommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]# redis4配置redis4:image: daocloud.io/library/redis:6.0.4container_name: redis-4restart: alwaysnetwork_mode: "host"volumes:- /opt/docker/redis-cluster/redis-4/data:/data- /opt/docker/redis-cluster/redis-4/redis.conf:/usr/local/etc/redis/redis.confcommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]# redis5配置redis5:image: daocloud.io/library/redis:6.0.4container_name: redis-5restart: alwaysnetwork_mode: "host"volumes:- /opt/docker/redis-cluster/redis-5/data:/data- /opt/docker/redis-cluster/redis-5/redis.conf:/usr/local/etc/redis/redis.confcommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]# redis6配置redis6:image: daocloud.io/library/redis:6.0.4container_name: redis-6restart: alwaysnetwork_mode: "host"volumes:- /opt/docker/redis-cluster/redis-6/data:/data- /opt/docker/redis-cluster/redis-6/redis.conf:/usr/local/etc/redis/redis.confcommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]
启动容器,执行命令:
#启动容器
docker-compose -f xxx.yaml up -d
5.开启集群
随便找一个容器进入,这里我选择redis-1进入。 在进入容器后,输入如下命令开启集群:
redis-cli --cluster create 192.168.66.180:6379 \
192.168.66.180:6380 \
192.168.66.180:6381 \
192.168.66.180:6382 \
192.168.66.180:6383 \
192.168.66.180:6384 \
--cluster-replicas 1
出现下图即为成功。
6.测试
使用redis-cli命令,连接集群中任意节点。(随便找一台能ping通集群所在IP的电脑,这里我用的本机进行测试)
6.1 查看节点属性
redis-cli -c -h 192.168.66.180 -p 6379192.168.66.180:6379> cluster info
显示为如下图,即为集群健康状态
6.2 查看节点信息
cluster nodes
注意看图中的slave,master,myself等关键字。
6.3 插入一个值
192.168.66.180:6379> set test 'hello world'
-> Redirected to slot [6918] located at 192.168.66.180:6380
OK
192.168.66.180:6380>
注意:这里根据切片自动切换到了该数据分片所在的节点上,所以下面可以看到连接的节点变为了192.168.1.4:6380
get test
168.66.180:6379> set test 'hello world'
-> Redirected to slot [6918] located at 192.168.66.180:6380
OK
192.168.66.180:6380> get test
"hello world"
192.168.66.180:6380>
这里因为就是在该数据所在分片上进行的查询,所以连接节点没有改变。
7.添加密码:
7.1 编辑redis.conf文件
#为redis.conf文件添加如下配置。这里设置密码为123456
masterauth 123456
requirepass 123456
7.2 编辑docker-compose.yml文件
#为docker-compose.yml中每个容器添加如下配置:
environment:- REDISCLI_AUTH=123456
7.3 连接集群
redis-cli -c -h 192.168.66.180 -p 6379 -a 123456
使用Docker-Compose搭建Redis集群相关推荐
- Docker Compose——搭建Redis集群
环境配置 Docker 18.x Docker-Compose 3.7 Redis 6.2.5 主从(Master-Slave)模式 主从复制模式中包含一个主数据库实例(master)与一个或多个从数 ...
- Docker Compose搭建TDengine集群
文章目录 1. Linux上安装Docker 2. 安装Docker Compose 3. 自定义Docker 网络 4. 搭建集群 4.1 基础配置 4.2 查看启动效果 4.3 测试节点 4.3. ...
- docker compose搭建NACOS集群
使用docker搭建NACOS集群 SpringCloud Alibaba,必然会使用Nacos进行服务注册与配置管理.然而,在实际的生产环境中,使用单服务器搭建nacos服务器是十分危险的,如若发生 ...
- docker compose安装redis集群、集群扩容、集群收缩
目录 一.redis 配置信息模板 二.编写批量生成配置文件脚本 三.批量生成配置文件 四.编写 docker-compose 文件 五.做集群.分配插槽 六.测试: 七.手动扩容 八.添加主从节点 ...
- docker搭建redis集群
#!/bin/bash #Author: 臆想的一只猫 #Created: 2022-04-06 17:42:33 #Description: 搭建redis集群function menu() {cl ...
- 使用docker搭建redis集群
使用docker搭建redis集群有两种,一种是单机多个docker容器,一种是多个机器的集群 基础知识 每个Redis集群中的节点都需要打开两个TCP连接.一个连接用于正常的给Client提供服务, ...
- 理解并从头搭建redis集群
部分开发人员工作当中只是在应用中使用redis,比如用来做数据结果的缓存.而且现在有很多不错的redis客户端工具(redisson),基本上可以不用关注redis命令就可以完成相当部分的功能.所以可 ...
- docker环境搭建redis-cluster集群(多台机器)
docker环境搭建redis-cluster集群(多机) Docker多台主机安装Redis集群 Docker安装Redis Cluster 三主三从
- 手把手搭建redis集群-三台虚拟机(三主三从)
Redis集群环境搭建: Redis 集群简介: Redis 是一个开源的 key-value 分布式存储系统,由于其出众的性能,大部分互联网企业将其用来作为服务端分布式缓存使用.Redis 在 3. ...
- [转]redis 5.0.5 5分钟搭建redis集群
环境:centos 7 1:下载并安装redis $ wget http://download.redis.io/releases/redis-5.0.5.tar.gz$ tar xzf ...
最新文章
- SQL Server中TOP子句可能导致的问题以及解决办法
- Redis 你该懂的点
- 全栈、均栈、MERN栈,哪个才是下一代Web项目的正确栈
- 理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用
- ipywidgets_未来价值和Ipywidgets
- 页面用ajax实现简单的连接数据库
- 使用ubuntu的新立德下载和安装的Eclipse无法在其help菜单中连接并安装ADT
- 生活的解释 —— 生物篇
- 高一计算机word的试题,高一年级信息技术期末考试复习题
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1. 版本历史	1 1.1. C# 1.0-纯粹的面向对象	2 1.2. C# 2.0
- AS中XML注释和取消注释快捷键,实际操作真实有效!!!
- zip 的ZipEntry转换为InputStream
- vue如何debugger
- Direct2D 介绍
- 一些免费的代理服务器
- linux下运行workman,笔记:Linux(AWS Redhat)开机启动workman进程(/etc/rc.local必须是755权限)...
- 项目二 管理与维护Linux系统
- 直连的不同网段的两台主机如何通信
- 移动互联网时代电商如何突围?
- 召回率 matlab代码,召回率和精度(示例代码)
热门文章
- 使用Python生成直方图
- CSS 网页动画【快速掌握知识点】
- 【通知】《算法设计与分析》实验课、理论课补课、考试时间、加分等安排 及 个人目标设定
- 实战 Java 第5天:开发商品查询(模糊查询与条件查询)接口
- 2016四川职称计算机时间安排,2016年四川职称计算机考试报名通知
- 出身清华姚班,斯坦福博士毕业,她的毕业论文成了「爆款」
- QTreeWidget设置让节点之间显示连线虚线与伸缩加减号
- 【yolov5+deepsort+tensorRT+QT+opencv临时启动内置跟踪器c++部署jetson-nx】
- 第四期培训总结——总结我的总结附教大家做总结的总结
- 分布式数据存储原理简介