Docker搭建Redis主从 + Redis哨兵模式(一主一从俩哨兵)

我这里是搭建一主一从,俩哨兵,准备两台服务器,分别安装docker

我这里有两台centos服务器 

主服务器IP:192.168.252.134

从服务器IP:192.168.252.135

1.两台服务器分别拉取redis镜像

docker pull redis

2.查看镜像 docker images

3.创建文件目录,我这里是放在 /opt/docker/redis

mkdir /opt/docker/redis/conf

mkdir /opt/docker/redis/data

4.主节点配置文件修改(提前准备好配置文件)可以去redis官方下载:redis.conf 配置文件下载

进入到 cd  /opt/docker/redis/conf  把 redis.conf 配置文件放到这里

如果不想下载的话也可以直接  vim redis.conf 创建并编辑文件,配置内容如下

cd /opt/docker/redis/conf

# 注释掉 所有IP都可以访问redis服务
#bind 127.0.0.1 -::1

# 关闭保护模式
protected-mode no

# 端口号
port 6379

# 改为no 后台进程的模式,避免跟docker的-d命令冲实
daemonize no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile ""

# 登录密码
requirepass 123456

# 主节点密码
masterauth 123456

# 持久化
# 开启后,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里
appendonly yes

5.从节点配置文件修改

同样  cd /opt/docker/redis/conf   编辑 vim redis.conf

从节点的配置只多了一个 replicaof  主从复制的配置,(如果配置多个从节点,复制此配置即可)

# 注释掉 所有IP都可以访问redis服务
#bind 127.0.0.1 -::1

# 关闭保护模式
protected-mode no

# 端口号
port 6379

# 改为no 后台进程的模式,避免跟docker的-d命令冲实
daemonize no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile ""

# 登录密码
requirepass 123456

# 主节点密码
masterauth 123456

# 持久化
# 开启后,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里
appendonly yes

#从节点需要配置这个 主节点的IP 和端口
replicaof 192.168.252.134 6379

6.分别启动 两台服务器上的redis容器

# 主服务器启动
# 创建并运行redis容器
docker run -d --privileged=true --restart always -v /opt/docker/redis/data:/data -v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf --name redis-master -p 6379:6379 redis /etc/redis/redis.conf# 从服务器启动
# 创建slave节点
docker run -d --privileged=true --restart always -v /opt/docker/redis/data:/data -v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf --name redis-slave -p 6379:6379 redis /etc/redis/redis.conf

参数说明:

-v /opt/docker/redis/data:/data ## 将容器里的数据挂载到宿主机/opt/docker/redis/data目录下

-v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf ## 容器里的redis配置文件与/opt/docker/redis/conf/redis.conf下的配置文件互相通信

/etc/redis/redis.conf  ## 指定要加载的配置文件 就是映射的上面配置的那个redis.conf文件

7.这样一主一从的redis服务就启动成功了,我们进入容器验证一下

# 查看容器

docker ps

# 进入主容器

docker exec -it redis-master /bin/bash

# 登录到redis服务

redis-cli

# 输入密码

auth 123456

# ping一下

ping

可以看到服务正常启动

8.查看主从信息

info replication

从节点查看:也是一样进入到从节点容器,登录redis服务里面

使用命令 exit 即可退出服务和容器

此时 主从搭建已经配置好了,我们可以用redis工具往主节点redis中set数据,即可看到从节点有相同的数据被同步过来了。

9.哨兵模式配置

哨兵的配置文件 sentinel.conf 也同样可以去  redis官方下载:sentinel.conf 配置文件下载

创建目录并进入

mkdir /opt/docker/sentinel

cd /opt/docker/sentinel

使用官方配置 把 sentinel.conf 文件copy到 服务器 /opt/docker/sentinel 这个目录

或者直接 vim sentinel.conf  配置内容如下

# Example sentinel.conf

# 关闭保护模式
protected-mode no

# 哨兵服务的端口号
port 26379

# 改为no 后台进程的模式,避免跟docker的-d命令冲实
daemonize no

pidfile /var/run/redis-sentinel.pid

loglevel notice

logfile ""

dir /tmp

# 添加主节点的 IP和端口 后面的这个数字1,代表主机挂了,slave投票看让谁接替成为主机,票数最多的,就会成为主机! (我这只部署两台哨兵 所以写1)
sentinel monitor mymaster 192.168.252.134 6379 1

# 主节点的认证密码 
sentinel auth-pass mymaster 123456

# 监控时间 (名称) (超时时间,当超过这个时间,则认为master已经挂了)
sentinel down-after-milliseconds mymaster 50000

acllog-max-len 128

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

sentinel deny-scripts-reconfig yes

SENTINEL resolve-hostnames no

SENTINEL announce-hostnames no

SENTINEL master-reboot-down-after-period mymaster 0

多个哨兵的配置都是如此

10.启动哨兵模式容器  多个哨兵操作都是同样的(我这里是两台服务器两个哨兵)

# redis 哨兵  主节点
docker run -d --privileged=true --restart always -v /opt/docker/sentinel/sentinel.conf:/etc/redis/sentinel.conf  --name sentinel-master -p 26379:26379 redis redis-sentinel /etc/redis/sentinel.conf# redis 哨兵 从节点
docker run -d --privileged=true --restart always -v /opt/docker/sentinel/sentinel.conf:/etc/redis/sentinel.conf  --name sentinel-slave -p 26379:26379 redis redis-sentinel /etc/redis/sentinel.conf

参数说明

redis-sentinel 是 Redis 提供的哨兵模式的命令行工具,它可以用来启动一个哨兵进程,并且可以通过它来监控和管理 Redis 服务

/etc/redis/sentinel.conf 是指定启动的加载文件

11.进到哨兵容器里面查看哨兵信息

# 进入到哨兵容器
docker exec -it sentinel-master /bin/bash# 登录redis哨兵服务
redis-cli -p 26379# 查看哨兵信息
info sentinel

通过上面的几个状态信息,我们可以看到哨兵检测的主节点信息,主节点下面有几个从节点,同时哨兵节点有几个。

至此 redis主从搭建和哨兵模式都已经配置好了

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入探索C++继承机制:从概念到实践的全面指南

目录 继承的概念及定义 继承的概念 继承的定义 定义格式 继承方式和访问限定符 继承基类成员访问方式的变化 默认继承方式 基类和派生类对象赋值转换 继承中的作用域 派生类的默认成员函数 继承与友元 继承与静态成员 继承的方式 菱形虚拟继承 菱形虚拟继承原理 继承…

【NumPy】掌握NumPy的histogram函数:数据直方图的生成与应用详解

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

AIGC笔记--基于PEFT库使用LoRA

1--相关讲解 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS LoRA 在 Stable Diffusion 中的三种应用:原理讲解与代码示例 PEFT-LoRA 2--基本原理 固定原始层,通过添加和训练两个低秩矩阵,达到微调模型的效果; 3--简单代…

奇门遁甲古籍1《奇门秘术》(双页版)PDF电子书

《奇门秘术》 全书共102页 时间有限,仅上传部分图片,结缘私!

ROS基础学习-话题通信机制研究

研究ROS通信机制 研究ROS通信机制 0.前言1.话题通信1.1 理论模型1.2 话题通讯的基本操作1.2.1 C++1.2.2 Python中使用自己的虚拟环境包1.2.2.1 参考11.2.2.2 参考21.2.2.3 /usr/bin/env:“python”:没有那个文件或目录1.2.3 Python1.2.2.1 发布方1.2.2.2 订阅方1.2.2.3 添加可执…

一些Spring的理解

说说你对Spring的理解 首先Spring是一个生态:可以构建企业级应用程序所需的一切基础设施 但是,通常Spring指的就是Spring Framework,它有两大核心: IOC和DI 它的核心就是一个对象管理工厂容器,Spring工厂用于生产Bea…

03 Prometheus+Grafana可视化配置

03 PrometheusGrafana可视化配置 大家好,我是秋意零。接上篇Prometheus入门安装教程 grafana官网下载安装包比较慢,如果没有魔法。可关注公众号【秋意零】回复101获取 Grafana官网下载:https://grafana.com/grafana/download 这里采用的二进制…

2024年社会发展、人文艺术与文化国际会议(ICSDHAC 2024)

2024年社会发展、人文艺术与文化国际会议(ICSDHAC 2024) 会议简介 2024年国际社会发展、人文、艺术和文化会议(ICSDHAC 2024)将在广州举行。会议旨在为从事社会发展、人文、艺术和文化研究的专家学者提供一个平台,分…

为什么说想当产品经理,最好的时候就是现在?

今年,随着人工智能(AI)技术的火热,AI产品经理岗位的需求也一路暴涨,薪资也同步水涨船高。 根据美国招聘社交媒体Glassdoor的数据,AI产品经理年收入高达125万元,是普通产品经理年收入的1.43倍,更是项目经理年收入的2.14倍。在中国,大厂AI产品经理的月收入也高达3到7万左右。但即…

【ai】livekit服务本地开发模式及example app信令交互详细流程

文档要安装git lfs 下载当前最新版本1.6.1 windows版本:启动dev模式 服务器启动 (.venv) PS D:\XTRANS\pythonProject\LIVEKIT> cd .\livekit_release\ (.venv) PS D:\XTRANS\pythonProject\LIVEKIT\livekit_release> lsDirectory: D:\XTRANS\pythonProject\L…

yolo 算法 易主

标题:YOLOv10: Real-Time End-to-End Object Detection 论文:https://arxiv.org/pdf/2405.14458ethttps%3A//arxiv.org/pdf/2405.14458.zhihu.com/?targethttps%3A//arxiv.org/pdf/2405.14458 源码:https://github.com/THU-MIG/yolov10 分析…

Django Web:搭建Websocket服务器(入门篇)

Django Web架构 搭建Websocket服务器(1) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:htt…

算法之堆排序

堆排序是一种基于比较的排序算法,通过构建二叉堆(Binary Heap),可以利用堆的性质进行高效的排序。二叉堆是一个完全二叉树,可以有最大堆和最小堆两种形式。在最大堆中,父节点的值总是大于或等于其子节点的值…

Linux文本处理三剑客(详解)

一、文本三剑客是什么? 1. 对于接触过Linux操作系统的人来说,应该都听过说Linux中的文本三剑客吧,即awk、grep、sed,也是必须要掌握的Linux命令之一,三者都是用来处理文本的,但侧重点各不相同,a…

kubeadm引导欧拉系统高可用的K8S1.28.X

文章目录 一. 核心组件架构二. 有状态与无状态应用三. 资源对象3.1 规约与状态3.2 资源的分类-元数据,集群,命名空间3.2.1 元数据3.2.2 集群资源 3.3 命名空间级3.3.1 pod3.3.2 pod-副本集3.3.3 pod-控制器 四. Kubeadm安装k8s集群4.1 初始操作4.2 ~~所有节点安装Docker&#x…

Java基础:基本语法(一)

Java基础:基本语法(一) 文章目录 Java基础:基本语法(一)1. 前言2. 开发环境搭建2.1 Java开发工具包下载2.2 环境变量配置2.3 Java程序的运行过程 3. 数据类型3.1 基本数据类型3.2 引用数据类型 4. 常量与变…

maven部署到私服

方法一:网页上传 1、账号登录 用户名/密码 2、地址 http://自己的ip:自己的端口/nexus 3、查看Repositories列表,选择Public Repositories,确定待上传jar包不在私服中 4、选择3rd party仓库,点击Artifact Upload页签 5、GAV Definition选…

SQL面试题练习 —— 连续登录超过N天用户(一)

题目 现有用户登录日志表 t_login_log,包含用户ID(user_id),登录日期(login_date)。数据已经按照用户日期去重,请查出连续登录超过4天的用户ID。 样例数据 样例输出 建表语句 CREATE TABLE t_login_log (user_id VARCHAR(255) COMMENT 用户ID,login_date DATE CO…

08.tomcat多实例

在加两个tomcat实例 [rootweb01 ~]# ll apache-tomcat-8.0.27.tar.gz -rw-r--r-- 1 root root 9128610 10月 5 2015 apache-tomcat-8.0.27.tar.gz [rootweb01 ~]# tar xf apache-tomcat-8.0.27.tar.gz [rootweb01 ~]# cp -a apache-tomcat-8.0.27 tomcat_8081 [rootweb01 ~…

大模型中的Tokenizer

在使用GPT 、BERT模型输入词语常常会先进行tokenize 。 tokenize的目标是把输入的文本流,切分成一个个子串,每个子串相对有完整的语义,便于学习embedding表达和后续模型的使用。 一、粒度 三种粒度:word/subword/char word词&a…