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

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我