【运维篇】5.6 Redis server 主从复制配置

news2024/11/11 5:44:00

文章目录

  • 0. 前言
  • 1. 配置方式
      • 步骤1: 准备硬件和网络
      • 步骤2: 安装Redis
      • 步骤3: 配置主服务器的Redis
      • 步骤4: 配置从服务器的Redis
      • 步骤5: 测试复制功能
      • 步骤6: 监控复制状态
  • 2. 参考文档

在这里插入图片描述

0. 前言

在Redis运维篇的第5.6章节中,将讨论Redis服务器的主从复制配置。在开始之前,让先来了解一下主从复制的概念和作用。

主从复制是指将一个Redis服务器的数据复制到其他Redis服务器的过程。在主从复制中,一个Redis服务器充当主服务器,而其他Redis服务器则充当从服务器。主服务器负责接收写操作,并将这些写操作传播到所有从服务器。从服务器则负责接收主服务器传播的写操作,并将这些写操作应用到自己的数据集中。

主从复制的主要作用是提高系统的可用性和性能。通过将数据复制到多个服务器上,即使主服务器发生故障,从服务器仍然可以提供读取服务,从而保证系统的可用性。此外,主从复制还可以将读操作分摊到多个服务器上,从而提高整个系统的读取性能。

在接下来的内容中,将详细讲解如何进行Redis服务器的主从复制配置和示例。

1. 配置方式

步骤1: 准备硬件和网络

确保你的主机和从机的硬件资源符合运行Redis的要求。主服务器和从服务器应该通过可靠的网络连接,确保两者之间的通信稳定且延迟较低。

这里我使用3台虚拟机来搭建一下,主服务器的ip为192.168.10.1,两个从服务器的ip分别为192.168.10.2192.168.10.2,端口号都为6379,具体的配置如下

步骤2: 安装Redis

根据你的操作系统,从Redis官网下载安装包或使用相应的包管理器进行安装。
对于基于RPM的系统(如CentOS):

sudo yum install redis

对于基于Debian的系统(如Ubuntu):

sudo apt-get update
sudo apt-get install redis-server

对于macOS(使用Homebrew):

brew install redis

我的是Centos 7
192.168.10.1
192.168.10.2
192.168.10.3
分别安装完redis 并开放防火墙6379端口号
有两种方式,看你的操作系统的支持。

  1. 使用firewall
	   # 检查当前防火墙规则:
	  sudo firewall-cmd --list-all 
	 #  如果没有特定规则,可以使用以下命令开放端口 6379:
	  sudo firewall-cmd --add-port=6379/tcp --permanent 
	   # 重新加载防火墙规则:
	 sudo firewall-cmd --reload
  1. 或者使用iptables
sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT

分别修改三台服务器的配置如下

daemonize yes
# 绑定的主机地址,这里注释掉,开放ip连接
#bind 127.0.0.1
logfile "redis.log"
requirepass 123456

步骤3: 配置主服务器的Redis

编辑Redis配置文件(通常位于/etc/redis/redis.conf/usr/local/etc/redis.conf),进行以下设置:

# 启用AOF持久化模式,以保证数据安全
appendonly yes

# 如果需要密码认证,取消以下注释并设置密码
requirepass 123456

重启Redis服务来应用新的配置:

sudo service redis-server restart

或在系统中使用对应的命令,如systemctl等。

步骤4: 配置从服务器的Redis

在从服务器上,同样编辑Redis配置文件。添加以下设置:

# 指定主服务器的地址和端口
slaveof 192.168.10.1 6379

# 如果主服务器设置了密码,配置从服务器的masterauth以匹配主服务器的密码
masterauth 123456

# 设置从服务器为只读模式
slave-read-only yes

# 设置从服务器与主服务器断开连接时的超时时间,单位为秒
repl-timeout 60

# 设置从服务器向主服务器发送PING的频率,单位为秒
repl-ping-slave-period 10

重启从服务器的Redis服务以应用新的配置。

步骤5: 测试复制功能

在主服务器上执行Redis命令,添加一些数据:

redis-cli -a 123456
set key1 "value1"

然后,在从服务器上执行:

redis-cli -a 123456
get key1

如果返回的是"value1",表示复制功能正常。

步骤6: 监控复制状态

使用以下命令在主服务器和从服务器上查看复制的状态和信息:

redis-cli -a 123456
info replication

会看到类似于以下的信息:

192.168.10.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.10.2,port=6379,state=online,offset=700,lag=0
slave1:ip=192.168.10.3,port=6379,state=online,offset=700,lag=0
master_replid:b80a4720c0001efb62940f5ad6abaf9cdaf7a813
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:700
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:700

192.168.10.2:6379> info replication
# Replication
role:slave
master_host:192.168.10.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:854
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:b80a4720c0001efb62940f5ad6abaf9cdaf7a813
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:854
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:57
repl_backlog_histlen:798

192.168.10.3:6379> info replication
# Replication
role:slave
master_host:192.168.10.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:854
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:b80a4720c0001efb62940f5ad6abaf9cdaf7a813
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:854
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:854

2. 参考文档

https://redis.io/docs/management/replication/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

根据nginx日志统计页面访问次数

静态页面部署在nginx上,页面只有查看下载功能。 需求是统计每条访问次数和下载次数,根据日志分析写了一个shell脚本,触发脚本后生成一个html可以远程查看统计的数量。 #!/bin/bash # nginx日志文件路径 LOG_FILE"/usr/local/nginx/l…

vue安装three.js并创建第一个入门场景

vue安装three.js,并创建第一个入门场景 安装three.js npm install --save three引入three.js import * as THREE from threethree.js结构 three.js坐标 创建一个场景 scene场景,camera相机,renderer渲染器 创建一个场景 this.scene new T…

B站短视频如何去水印?一键解析下载B站视频!

在浏览B站视频时,我们有时会遇到带有水印的场景。这些水印可能会干扰我们对视频内容的观看体验,特别是在全屏观看时。此外,当我们想要保存或分享这些视频时,水印也会成为一种障碍。因此,去除水印的需求就变得非常迫切。…

机器学习算法项目开发流程

机器学习算法是当今人工智能领域最重要的技术之一,它可以让计算机通过学习数据中的模式和规律来实现预测和决策。在实际应用中,开发一个成功的机器学习算法项目需要遵循一定的开发流程。本文将介绍一个常见的机器学习算法项目开发流程,帮助读…

公司电脑文件透明加密、防泄密管理软件系统

天锐绿盾数据透明加密系统是一款采用驱动层透明加密技术实现电子文件安全加密的防护产品,可以对企业电子文件的存储、访问、传播和处理过程实施全方位保护。该系统遵循基于文件生命周期安全防护的思想,集成了密码学、访问控制和审计跟踪等技术手段&#…

22年+21年 计算机能力挑战赛初赛C语言程序题 题解

22年 第14题&#xff1a;答案&#xff1a;33 #include<stdio.h> int x1; int f(int a) { static int x2;int n0;if(a%2){ static int x3;nx; }else { static int x5;nx; }return nx;} void main() { int sumx,i;for(i0;i<4;i) sumf(i); printf(&qu…

百云齐鲁 | 云轴科技ZStack成功实践精选(山东)

山东省作为我国重要的工业基地和北方地区经济发展的战略支点&#xff0c;在“十四五”规划中将数字强省建设分为数字基础设施、数字科技、数字经济、数字政府、数字社会、数字生态六大部分&#xff0c;涵盖政治、经济、民生等多个方面&#xff0c;并将大数据、云计算、人工智能…

腐蚀监测常用技术及作用

上次我们介绍了设备状态监测中的红外热像技术>>热成像仪的工作原理及在工业设备状态监测中的应用&#xff0c;这次我们一起来探讨腐蚀监测技术方面的内容。 在工业领域中&#xff0c;腐蚀监测技术是腐蚀控制的重要部分和可靠而有效的手段。通过对设备的腐蚀情况进行监测和…

简单模拟 Spring 创建的动态代理类(解释一种@Transactional事务失效的场景)

模拟 Spring 创建的动态代理类 本文主要目的是从父类和子类继承的角度去分析为什么在 Service 标注的业务类中使用 this 调用方法会造成事务失效。解释在这种情况下 this 为什么是原始类对象而不是代理类对象。 问题描述 在 Service 标注的业务类中&#xff0c;如果调用本类…

机器学习第10天:集成学习

文章目录 机器学习专栏 介绍 投票分类器 介绍 代码 核心代码 示例代码 软投票与硬投票 bagging与pasting 介绍 核心代码 随机森林 介绍 代码 结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 介绍 集成学习的思想是很直观的&#xff1a;多个人判断的结合往往比…

起立科技(起鸿)在第25届高交会上展示透明OLED技术创新

第二十五届中国国际高新技术成果交易会 日期&#xff1a;2023年11月15日 地点&#xff1a;福田会展中心7号馆 深圳&#xff0c;2023年11月15日 — 起鸿科技&#xff0c;作为透明OLED领域的引领者&#xff0c;于今日参展了第二十五届中国国际高新技术成果交易会。这一展会将汇…

微服务架构中的 熔断和降级

文章目录 熔断判定服务的健康状态服务恢复正常 降级跨服务降级自身服务提供有损服务具体案例分析 熔断 微服务架构中&#xff0c;如果需要保障可用性&#xff0c;其中一个方式就是 熔断。熔断在微服务架构里面是指 当微服务本身出现问题的时候&#xff0c;它会拒绝新的请求&am…

vue如何开启gzip压缩

什么是gzip&#xff1a; Gzip 是一种压缩算法&#xff0c;在网络传输中使用非常普遍。 需要注意的是&#xff0c;Gzip 压缩仅对于文本类型的资源有明显提示&#xff0c;压缩后的体积大约是压缩前的 1/3。 但是对于图片&#xff0c;音视频等媒体资源&#xff0c;本身就采用了…

emq Neuron工业协议采集使用

emq Neuron工业协议采集使用 Neuron 简介 EMQ X Neuron 是运行在各类物联网边缘网关硬件上的工业协议商业化网关软件&#xff0c;支持一站式接入和解析数十种工业协议&#xff0c;并转换成 MQTT 协议接入工业物联网平台。用户可以通过基于 Web 的管理控制台可以实现在线的网关…

Seata分布式事务

AT模式 整体架构 使用示例 这里以 Dubbo Seata 为例&#xff0c;微服务架构体系是分布式事务的常见运用场景&#xff0c;多个微服务分散到不同的机器上&#xff0c;通过远程调用串联起来&#xff0c;此时如何使用Seata建立起分布式事务呢&#xff1f; Seata的AT模式做到了业…

图片叠加_图片压缩

图片叠加 try {/* 1 读取第一张图片*/File fileOne new File("1.png");BufferedImage imageFirst ImageIO.read(fileOne);/* 2读取第二张图片 */File fileTwo new File("2.png");BufferedImage imageSecond ImageIO.read(fileTwo);//创建一个最底层画…

postgresql安装fdw扩展

最近有同一个服务器不同数据库、不同服务器数据库之间的数据同步需求&#xff0c;使用了fdw 下面举例的是同一个服务器两个不同数据库的同步情况 1、安装扩展 create extension postgres_fdw; 在需要使用fdw的数据库都加上该扩展 2、创建fdw服务器 mlhbase_prd库 CREATE…

read系统调用源码分析

文章目录 基本知识前言一个文件基本的读写流程图块设备驱动<1> 块设备&#xff08;blockdevice&#xff09;<2> 块设备结构<3> block_device和gendisk 区别 同步/异步IO请求队列 read系统调用源码分析设计思想一、入口函数&#xff08;1&#xff09;fget_lig…

WMS仓储管理系统的工作流程是什么

在当前的物流行业中&#xff0c;高效和精准的仓库管理被视为成功的关键。为了满足这一需求&#xff0c;WMS仓储管理系统应运而生。这个系统是物流中心的核心部分&#xff0c;可以显著提高仓库的运营效率&#xff0c;为现代物流管理带来前所未有的便捷。 WMS仓储管理系统的工作流…

算法---相等行列对

题目 给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid &#xff0c;返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目。 如果行和列以相同的顺序包含相同的元素&#xff08;即相等的数组&#xff09;&#xff0c;则认为二者是相等的。 示例 1&#xff1a; 输入&…