Docker部署系列之Docker Compose安装Redis三主三从集群

2024-03-13 11:44

本文主要是介绍Docker部署系列之Docker Compose安装Redis三主三从集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在日常开发或者编程当中,经常需要用到redis集群,若是按照传统的方式,一个机器一个机器搭建,难免过于繁琐,故而可以通过dock er-compose编排方式,快速搭建。我在搭建过程当中,将操作记录下来,方便以后需要搭建三主三从节点时,可以基于以前的成功经验,快速搭建起来。

一、环境准备

准备三台机器,在每台机器上,计划安装一个Redis主节点和一个Redis从节点。

机器

Redis节点

节点端口

192.168.31.130

redis-master/redis-slave

6379/6380

192.168.31.131

redis-master/redis-slave

6379/6380

192.168.31.132

redis-master/redis-slave

6379/6380

二、文件准备

2.1、创建Redis节点目录

分别在192.168.31.130、192.168.31.131、192.168.31.132机器上,执行以下命令,创建Redis主从节点文件目录——

for dir in redis-master/data redis-slave/data; do mkdir -p "/opt/docker/redis-cluster/$dir";done

复制

2.2、创建节点配置文件redis.conf

分别在192.168.31.130、192.168.31.131、192.168.31.132机器上的/opt/docker/redis-cluster/redis-master/与/opt/docker/redis-cluster/redis-slave/目录下,创建一个redis.conf文件,文件内容包括以下属性——

port 6379 #指定 Redis 服务器监听的端口号,这是客户端与 Redis 服务器进行通信的端口。
save 900 1#在给定时间间隔内有多少次写操作时,Redis 将执行自动的快照(生成 RDB 文件)。
save 300 10
save 60 10000
dbfilename dump.rdb#指定生成的 RDB 文件的名称。
dir /data #指定持久化文件的存储目录。
appendonly yes #启用 AOF(Append-Only File)持久化模式。
appendfilename "appendonly.aof" #指定 AOF 文件的名称。
appendfsync everysec #控制 AOF 缓冲区的内容何时同步到硬盘。这里的选项 everysec 表示每秒同步一次
cluster-enabled yes #启用 Redis 集群功能。
cluster-config-file nodes.conf #指定保存集群拓扑信息的配置文件名。
cluster-node-timeout 5000 #设置节点间通信的超时时间,单位为毫秒。

复制

快捷指令,直接在linux运行——

for dir in redis-master redis-slave; do if [ "$dir" == "redis-master" ]; thenport=6379elif [ "$dir" == "redis-slave" ]; thenport=6380fi
echo "port $port 
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /data 
appendonly yes 
appendfilename "appendonly.aof" 
appendfsync everysec 
cluster-enabled yes 
cluster-config-file nodes.conf 
cluster-node-timeout 5000" > /opt/docker/redis-cluster/$dir/redis.conf;done

复制

运行完成后,在/opt/docker/redis-cluster/redis-master/以及/opt/docker/redis-cluster/redis-slave/生成一个data目录和一个redis.conf文件——

redis.conf文件里内容就是前面设置的。

三、编写docker-compose.yml编排文件

分别在三台机器的/opt/docker/redis-cluster/目录下,创建docker-compose.yml文件,内容如下:

version: '3.1'
services:redis-master:image: redis:5.0.8container_name: redis-masterrestart: alwaysnetwork_mode: "host" volumes:- /opt/docker/redis-cluster/redis-master/data:/data- /opt/docker/redis-cluster/redis-master/redis.conf:/usr/local/etc/redis/redis.confcommand: ["redis-server","/usr/local/etc/redis/redis.conf"]redis-slave:image: redis:5.0.8container_name: redis-slaverestart: alwaysnetwork_mode: "host" volumes:- /opt/docker/redis-cluster/redis-slave/data:/data- /opt/docker/redis-cluster/redis-slave/redis.conf:/usr/local/etc/redis/redis.confcommand: [ "redis-server","/usr/local/etc/redis/redis.conf" ]

复制

完成后,执行指令docker-compose up -d——

执行指令docker ps -a查看一下容器是否已经正常运行,如下现实证明没有问题——

四、执行指令组建redis集群

4.1、任意一台机器上,执行以下指令,进入到docker容器当中——

docker exec -it redis-master bash #redis-master对应的是docker ps -a查看到的容器名redis-master

复制

4.2、创建集群

redis-cli --cluster create  192.168.31.130:6379  192.168.31.130:6380  192.168.31.131:6379 192.168.31.131:6380 192.168.31.132:6379 192.168.31.132:6380 --cluster-replicas 1

复制

执行完成后,打印日志如下——

执行指令后,会出现提示“Can I set the above configuration? (type 'yes' to accept):”,这里输入yes,回车。出现以下情况话,就是已经成功创建redis集群了——

可以通过以下指令进入到redis客户端,查看集群情况——

root@hadoop1:/data# redis-cli -c -h 192.168.31.130 -p 6379

复制

然后,执行指令cluster info查看集群状况,显示cluster_state:ok则表示集群已经正常创建。

当然,可以进一步通过cluster nodes指令,查看各节点状况,已经是三主三从的集群状况了——

以上,就是整个集群搭建过程。

这篇关于Docker部署系列之Docker Compose安装Redis三主三从集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

浅析如何保证MySQL与Redis数据一致性

《浅析如何保证MySQL与Redis数据一致性》在互联网应用中,MySQL作为持久化存储引擎,Redis作为高性能缓存层,两者的组合能有效提升系统性能,下面我们来看看如何保证两者的数据一致性吧... 目录一、数据不一致性的根源1.1 典型不一致场景1.2 关键矛盾点二、一致性保障策略2.1 基础策略:更新数

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的