2024广东省职业技能大赛云计算赛项实战——Redis主从架构

news2025/1/15 17:48:51

Redis主从架构

前言

Redis是一个开源的内存数据结构存储系统,一般用于作为数据库、缓存和消息代理使用,而主从架构是许多分布式系统中常见的设计模式,用来提高系统的性能、可靠性和扩展性。

虚拟机使用的是自行创建的CentOS7,如果你不会,那虚拟机创建的流程可以参考我这篇文章:职业技能大赛云计算赛项实战——OpenStack搭建-CSDN博客
使用镜像为CentOS-7-x86_64-DVD-2009.iso,可从阿里镜像站下载:https://mirrors.aliyun.com/centos/7/isos/x86_64/
两台机子可以创好一台再克隆一台,这样会比较省时。
需要用到的redis软件源压缩包:https://pan.baidu.com/s/1ZnZoD_hdBywwFy3Q6GZFSA?pwd=tk9h
提取码:tk9h

同时,这个实验中两节点打得命令很多都是一样的,一样推荐使用Xshell,可以同时控制两个会话。

节点规划如下

主机名IP/24节点
redis1192.168.100.100主节点
redis2192.168.100.200从节点

操作过程

关闭防火墙和Selinux

#两个节点均关闭防火墙并禁止其开机自启
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld
#临时关闭Selinux
[root@localhost ~]# setenforce 0
[root@localhost ~]# setenforce 0

修改主机名

#修改两台机子的主机名
[root@localhost ~]# hostnamectl set-hostname redis1
[root@localhost ~]# bash
[root@redis1 ~]# 

[root@localhost ~]# hostnamectl set-hostname redis2
[root@localhost ~]# bash
[root@redis2 ~]# 

上传redis软件源

上传我提供的软件包(使用远程连接软件,SecureFX、XShell都行)
大小才707K,两个节点都要上传
在这里插入图片描述
然后将软件包解压至opt目录

[root@redis1 ~]# tar -zxf redis-3.2.12.tar.gz -C /opt
[root@redis2 ~]# tar -zxf redis-3.2.12.tar.gz -C /opt

配置YUM源

#这里两个节点都要配置
#创建挂载目录
[root@redis1 ~]# mkdir /opt/centos
#挂载
[root@redis1 ~]# mount -o loop /dev/sr0 /mnt/
[root@redis1 ~]# cp -rf /mnt/* /opt/centos/
[root@redis1 ~]# umount /mnt/
#redis1:
#删除系统自带的默认源
[root@redis1 ~]# rm -rf /etc/yum.repos.d/*
#创建新的仓库文件
[root@redis1 ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
enabled=1
gpgcheck=0
[redis]
name=redis
baseurl=file:///opt/redis
enabled=1
gpgcheck=0
#检查可用性
[root@redis1 ~]# yum clean all && yum repolist
...
源标识                                       源名称                                       状态
centos                                       centos                                       4,070
redis                                        redis                                            3
repolist: 4,073
...
#redis2:
#创建挂载目录
[root@redis2 ~]# mkdir /opt/centos
#挂载
[root@redis2 ~]# mount -o loop /dev/sr0 /mnt/
[root@redis2 ~]# cp -rf /mnt/* /opt/centos/
[root@redis2 ~]# umount /mnt/
#删除系统自带的默认源
[root@redis2 ~]# rm -rf /etc/yum.repos.d/*
#创建新的仓库文件,你也可以从redis1通过scp命令把文件传过来
[root@redis2 ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
enabled=1
gpgcheck=0
[redis]
name=redis
baseurl=file:///opt/redis
enabled=1
gpgcheck=0
[root@redis2 ~]# yum clean all && yum repolist
...
源标识                                       源名称                                       状态
centos                                       centos                                       4,070
redis                                        redis                                            3
repolist: 4,073
...

安装redis服务

#redis1/redis2:
[root@redis1/2 ~]# yum -y install redis
#启动并设置服务开机自启
[root@redis1/2 ~]# systemctl start redis && systemctl enable redis
...

修改redis服务配置文件

#修改配置文件redis.conf
#具体修改内容如下:
#修改前的配置项:
[root@redis1/2 ~]# sed -n '61p;80p;128p;265p;272p;480p;593p' /etc/redis.conf
61 bind 127.0.0.1
80 protected-mode yes
128 daemonize no
265 # slaveof <masterip> <masterport>
272 # masterauth <master-password>
480 # requirepass foobared
593 appendonly no

#redis1:
[root@redis1 ~]# vi /etc/redis.conf									
61 #bind 127.0.0.1		#原来是生效的,将其注释
80 protected-mode no 	#原先是yes,改为no。这是允许外部网络进行访问
128 daemonize yes 		#原先是no,改为yes。这是开启守护进程
272 masterauth "123456"#去掉注释符,并设置主库密码
480 requirepass "123456" #去掉注释符,并设置访问密码
593 appendonly yes		#原先是no,改为yes。设置AOF持久化支持
#修改完后重启服务
[root@redis1 ~]# systemctl restart redis
#redis2:
[root@redis2 ~]# vi /etc/redis.conf
61 #bind 127.0.0.1		#原来是生效的,将其注释
80 protected-mode no 	#原先是yes,改为no。这是允许外部网络进行访问
128 daemonize yes 		#原先是no,改为yes。这是开启守护进程
265 slaveof 192.168.100.100 6379 #设置主节点IP和端口
272 masterauth "123456" #去掉注释符,并设置主库密码
480 requirepass "123456" #去掉注释符,并设置访问密码
593 appendonly yes		#原先是no,改为yes。设置AOF持久化支持
#修改完后重启服务
[root@redis2 ~]# systemctl restart redis

测试服务

#使用命令行客户端工具,指定连接的Redis服务器的地址、端口号和密码,查看当前Redis实例的复制状态信息
[root@redis1 ~]# redis-cli -h 192.168.100.100 -p 6379 -a 123456 info replication
# Replication
role:master		#当前角色是主节点
connected_slaves:1	#连接的从节点数量为1
slave0:ip=192.168.100.200,port=6379,state=online,offset=267,lag=1
#从节点的详细信息
#offset是从节点的复制偏移量,表示从节点已成功接收并复制的字节数
#lag是复制延迟,表示从节点落后于主节点的时间量/s
master_repl_offset:267	#主节点复制偏移量,这是主节点已发送给所有从节点的字节数。
repl_backlog_active:1	#复制回放缓冲区,为1说明在活跃,它用于保存主节点发送给从节点的命令和数据
repl_backlog_size:1048576	#复制回放缓冲区大小/byte
repl_backlog_first_byte_offset:2	#复制回放缓冲区的第一个字节的偏移量
repl_backlog_histlen:266	#复制回放缓冲区的历史长度/byte
[root@redis2 ~]# redis-cli -h 192.168.100.200 -p 6379 -a 123456 info replication 
# Replication
role:slave		#当前角色是主节点
master_host:192.168.100.100	#主节点IP
master_port:6379			#主节点端口
master_link_status:up		#与#主节点的连接状态,up说明正常
master_last_io_seconds_ago:3#上次与主节点进行I/O操作间隔/s
master_sync_in_progress:0	#是否正在进行同步操作
slave_repl_offset:281		#从节点的复制偏移量
slave_priority:100			#从节点优先级,选举新的主节点时使用,数值越小优先级越高
slave_read_only:1			#从节点是否只读,一般从节点是只读的,防止数据不一致
connected_slaves:0			#连接的从节点,一般从节点不会有自己的从节点
master_repl_offset:0		#主节点的复制偏移量
repl_backlog_active:0		#复制回放缓冲区
repl_backlog_size:1048576	#复制回放缓冲区大小/byte
repl_backlog_first_byte_offset:0	#复制回放缓冲区的第一个字节的偏移量
repl_backlog_histlen:0	#复制回放缓冲区的历史长度/byte

后语

没啥可说了,会持续更新的

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

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

相关文章

记录SpringBoot启动报错解决

记录SpringBoot启动报错解决 报错现场 Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following:If you want an embedde…

反转链表(java精简版)

反转一个单向链表。 public class ReversingLinkedList {static class Node {int val;Node next;public Node(int val) {this.val val;}public boolean hasNext() {return next ! null;}}public static void main(String[] args) {//构造Node head null;Node shift null;for…

MobileNet系列论文阅读笔记(MobileNetV1、MobileNetV2和MobileNetV3)

目录 引言MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications摘要Prior Work -- 先前工作MobileNet Architecture— MobileNet结构Depthwise Separable Convolution—深度可分离卷积Network Structure -- 网络结构 总结 MobileNetV2: Invert…

视频共享融合赋能平台LntonCVS视频监控业务平台建设安全煤矿矿井应用方案

随着我国经济的飞速增长&#xff0c;煤炭作为主要的能源之一&#xff0c;在我国的能源结构中扮演着至关重要的角色。然而&#xff0c;煤矿事故的频繁发生&#xff0c;不仅造成了巨大的人员伤亡和财产损失&#xff0c;也对社会产生了深远的负面影响。因此&#xff0c;实现煤矿的…

transformers Model

☆ 问题描述 在 transformers 框架中&#xff0c;Model 模块是核心组件之一&#xff0c;提供了多种预训练模型及其相关功能&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;任务。 ★ 解决方案 # 导入相关文件 from transformers import AutoConfig, AutoM…

【odoo】常用的字符转义:“>“,“<“,““,“/“等

概要 字符转义是指在编写代码或处理文本数据时&#xff0c;将特殊字符转换为另一种形式&#xff0c;以便在特定的上下文中正确解析和处理这些字符。 内容 特殊字符描述XML转义表示法&和符号&amp;<小于符号<>大于符号>"双引号&quot;单引号&ap…

Day1:基础语法

今日目标&#xff1a;理解什么是变量、掌握常用的数据类型、学会数据类型转换 一、JavaScript 介绍 1. JavaScript 基础知识 主要讲解 &#xff1a;JavaScript 是什么、书写位置、注释、结束符、输入和输出语法、字面量。 1.1 JavaScript 是什么 是一种运行在客户端(浏览器…

B端业务需求分析的3大注意事项

通过深入分析业务需求&#xff0c;可以准确理解B端用户的具体需求&#xff0c;帮助项目团队设计出真正解决企业问题、提高工作效率的产品或服务。这减少了后期变更&#xff0c;节约了时间和资源。如果没有深入分析业务需求&#xff0c;产品或服务功能可能与实际业务需求脱节&am…

PHP转Go系列 | 数组切片的使用姿势

大家好&#xff0c;我是码农先森。 简介 在 PHP 语言中数组的使用很简单&#xff0c;易用程度简直变态&#xff0c;无论多么复杂的数据格式都可以用数组来表达&#xff0c;可以随心所欲的使用。 <?php $array [1, name, [sex > 男]]; print_r($array);$array []; $…

【LLM之NL2SQL】DAIL-SQL论文阅读笔记

研究背景 该研究旨在提供一个全面、系统的评估框架&#xff0c;用于评估基于大型语言模型&#xff08;LLM&#xff09;的Text-to-SQL技术。特别强调了不同的提示工程策略的有效性和效率&#xff0c;以及开源LLM的可行性。研究的重点是评估在零样本和少样本场景下的不同问题表示…

1.3自然语言的分布式表示-word2vec

文章目录 0基于计数的方法的问题1什么是基于推理的方法2神经网络中单词的表示2.1 MatMul 层的实现 3简单word2vec的实现3.1 CBOW模型的结构3.1.1神经元视角3.1.2层的视角3.1.3多层共享权重时存在的问题 3.2 CBOW模型的学习3.3单词的分布式表示 代码都位于&#xff1a;nlp&#…

《梦醒蝶飞:释放Excel函数与公式的力量》4.1if函数

第4章&#xff1a;逻辑与条件函数 第一节4.1 if函数 在Excel中&#xff0c;逻辑函数用于处理基于特定条件的真假判断&#xff0c;它们是构建复杂公式和进行高级数据分析的基础。本章将深入探讨逻辑函数的使用方法&#xff0c;特别是IF函数&#xff0c;这是Excel中最为常用的条…

Node.js 是一个开源的 跨平台的JavaScript运行环境

https://www.npmjs.com/ 中央仓库 Visual Studio Code - Code Editing. Redefined https://openjsf.org/ OpenJS 促进了关键 JavaScript 技术在全球范围内的广泛采用和持续发展。 Apache服务器 Nginx服务器 Tomcat服务器 Node.js服务器 Gunicorn服务器 uW…

6个步骤实现 Postman 接口压力测试

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 这里讲是Postman做接口并发测试&#xff0c;基础用法不做赘述 1、第一步接口可以通的情况下点击…

番外篇 | FFCA-YOLO复现:面向遥感图像的小目标检测最新方法 | 解决小目标检测特征表示不足和背景混淆等问题

前言:Hello大家好,我是小哥谈。在论文中,作者的动机是设计一个高精度同时具备潜在的实时处理能力的小目标检测器。由此,作者首先分别提出了特征增强模块(FEM)与空间上下文感知模块(SCAM)来丰富局部和全局的上下文特征信息。其中,FEM通过多分支卷积拓宽了骨干网络的感受…

oracle发送https请求

参照 https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/u_http.htm#i1025869 https://docs.oracle.com/cd/E11882_01/network.112/e40393/asowalet.htm#ASOAG160 https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_networkacl_adm.htm#ARPLS148 https://d…

环境配置01:Torch、CUDA适配与显卡驱动更新

说明&#xff1a; torch版本依赖于CUDA版本与Python版本 Start Locally | PyTorch CUDA版本依赖于显卡驱动版本 1. CUDA 12.5 Release Notes — Release Notes 12.5 documentation 显卡驱动版本依赖于显卡型号与电脑系统 当前电脑3060显卡&#xff0c;安装了CUDA V11.6与tor…

查询mysql库表的几个语句

1、查询某个数据库的所有表 SELECTtable_name FROMinformation_schema.TABLES WHEREtable_schema database_namedatabase_name替换成你需要查询的数据库名称 2、查询某张表的所有字段名称 SELECTCOLUMN_NAME,column_comment FROMinformation_schema.COLUMNS WHEREtable…

maxwell源码编译安装部署

目录 1、组件环境 2、maxwell安装前提 3、maxwell安装 3.1、maxwell下载 3.1.1、最新版本下载 ​编辑 3.1.2、历史版本下载 3.2、maxwell安装 3.3、maxwell配置 3.2.1、mysql开启binlog 3.3.2、maxwell元数据配置 3.3.3、maxwell配置任务 4、maxwell部署问题 4.1、utf…

异地如何共享视频文件?

人们对于信息流动的需求越来越高。尤其在分布式团队合作、远程办公的背景下&#xff0c;异地共享视频文件成为了一项重要的技术需求。本文将介绍一款名为【天联】的组网产品&#xff0c;它能够实现不同地区间快速组建局域网&#xff0c;解决不同设备间的信息远程通信问题。 2.…