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

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

后语

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自定义平台后台登录地址前缀的教程

修改平台后台地址默认的 admin 前缀 修改后端 config/admin.php 配置文件,为自定义的后缀 修改 平台后台前端源码中 src/settings.js 文件,修改为和上面一样的配置 修改后重新打包前端代码,并且覆盖到后端的 public 目录下 重启 swoole 服务即可

关于如何得到Mindspore lite所需要的.ms模型

关于如何得到Mindspore lite所需要的.ms模型 一、.ckpt模型文件转.mindir模型二、.mindir模型转.ms模型三、其它3.1 代码3.2 数据 四、参考文档 一、.ckpt模型文件转.mindir模型 由于要得到ms模型&#xff0c;mindspore的所有模型里面&#xff0c;是必须要用mindir模型才可以进…

计算机毕业设计Python深度学习房价预测 房价可视化 链家爬虫 房源爬虫 房源可视化 卷积神经网络 大数据毕业设计 机器学习 人工智能 AI

基于python一/二手房数据爬虫分析预测系统可视化 商品房数据Flask框架&#xff08;附源码&#xff09; 项目介绍python语言、Flask框架、MySQL数据库、Echarts可视化 sklearn机器学习 多元线性回归预测模型、requests爬虫框架 链家一手房 一手房数据商品房数据、分析可视化预测…

Unexpected tokens (use ‘;‘ to separate expressions on the same line)

idear配置gradle时,出现这样的错误&#xff1a; 一、dependencies dependencies { testImplementation(platform("org.junit.jupiter:junit-jupiter-api:5.9.1")) testImplementation("org.junit.jupiter:junit-jupiter-engine:5.9.1") // https://mvnr…

苹果电脑如何清理磁盘空间 苹果电脑如何清理系统数据

你是否遇到过电脑磁盘空间不足的情况呢&#xff1f;Mac电脑有着流畅的操作系统&#xff0c;但是随着日常使用&#xff0c;可能电脑里的垃圾文件越来越多&#xff0c;导致磁盘空间不足&#xff0c;随之会出现电脑卡顿、软件闪退等情况。及时清理磁盘空间可以有效避免电脑这些问题…

腾讯云开端口

轻量服务器 由于开发者计划&#xff0c;这些腾讯云 阿里云什么的小vps&#xff0c;是非常之便宜&#xff0c;甚至到了白送的地步&#xff08;小阿&#xff09;&#xff0c;但是作为一个web安全学习者必要的vps操作还是要会的 开启端口 腾讯云的轻量服务器是没有安全组的&…

【总线】AXI4第二课时:深入AXI4总线的基础事务

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣&#xff0c;那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者&#xff0c;AXI4以其高性能和高度可扩展性&#xff0c;成为了现代电子系统中不可或缺的通信桥梁…

数据结构之“算法的时间复杂度和空间复杂度”

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;数据结构 目录 前言 一、算法效率 1.1算法的复杂度概念 1.2复杂度的重要性 二、时间复杂度 2.1时间复杂度的概念 2.2大O的渐进表示法 2.3常见的时间复杂度…

Spring Boot -- 图书管理系统(登录、展示+翻页、添加/修改图书)

文章目录 一、应用分层二、数据库的设计三、登录功能四、展示列表&#xff08;使用虚构的数据&#xff09;五、翻页 展示功能六、添加图书七、修改图书 一、应用分层 为什么我们需要应用分层&#xff1a;当代码量很多时&#xff0c;将其全部放在一起查找起来就会很麻烦&#…

【SQL每日一练】HackerRan-Basic Join-Challenges练习

文章目录 题目题析题解1.sqlserver 题目 编写一个查询来打印 hacker _ id、 name 和每个学生创建的挑战的总数。按照挑战的总数按降序对结果进行排序。如果不止一个学生创建了相同数量的挑战&#xff0c;那么按 hacker _ id 对结果进行排序。如果不止一个学生创建了相同数量的…

Node.js单点登录SSO详解:Session、JWT、CORS让登录更简单

文章目录 一、SSO介绍1、使用SSO的好处 二、中间件介绍1、Express安装导入使用 2、cors安装导入配置 3、express-session安装导入配置使用 4、jsonwebtoken安装导入使用 5、jwt和session对比 三、SSO实现方案1、安装依赖2、结构3、实现原理 三、示例代码1、nodejs端 server/ind…

求最小生成树的新算法

不管 prim 算法还是 kruskal 算法都基于 “当前可见最短边” 作贪心策略&#xff0c;但这并不适合分布式并行操作&#xff0c;比方说所有节点一起构建最小生成树&#xff0c;这些算法都显得同步开销过大&#xff0c;甚至导出错误的结果。 最近研究并构建最大流多路径传输协议的…

【配置】Notion自动化备份到github方案

步骤 打开notion网页&#xff0c;获取到需要的值 token_v2 找到请求getSpaces的 Cookie 值 token_v2 space_id 找到请求getSpaces的响应结果space,如下图&#xff1a; file_token 找个页面点击导出&#xff0c;之后拿到这个配置项 注意&#xff1a;配置项会过期&#xff0c…

内容安全复习 9 - 身份认证系统攻击与防御

文章目录 基于生物特征的身份认证系统概述基于生物特征的身份认证 人脸活体检测检测方法未解决问题 基于生物特征的身份认证系统概述 作用&#xff1a;判别用户的身份、保障信息系统安全。 是识别操作者身份的过程&#xff0c;要保证其**物理身份&#xff08;现实&#xff0…

『 Linux 』 进程间通信概述

文章目录 什么是进程间通信为什么要有进程间通信如何进行进程间通信 什么是进程间通信 进程间通信(IPC)指的是在操作系统重,允许两个或者多个进程之间传递信息或者数据的机制; 进程是操作系统重独立运行的实体,即进程间具有独立性,存在自己的地址空间; 因此进程间默认无法直接访…

mysql8.0找不到my.ini

报错问题解释&#xff1a; MySQL 8.0 在Windows系统中通常不需要 my.ini 文件&#xff0c;因为安装程序会在 %PROGRAMDATA%\MySQL\MySQL Server 8.0\ &#xff08;通常是 C:\ProgramData\MySQL\MySQL Server 8.0\&#xff09;创建默认的配置文件。如果你的系统中找不到 my.ini…

oracle 数据库导入dmp文件

荆轲刺秦王 从线上正式环境导出的 dmp 文件&#xff0c;导入到本地 oracle 数据库。 1. 创建用户: CREATE USER hf_chip IDENTIFIED BY hf_chip; 2. 授予 CONNECT 和 RESOURCE 基本权限给新用户。 GRANT CONNECT, RESOURCE TO hf_chip; 3. 创建表空间 CREATE TABLESPACE…

qt界面开发-01我的第一个qt程序

Qt 是一个跨平台的 C开发库。主要用来开发图形用户界面&#xff08;Graphical User Interface&#xff0c;简 称 GUI&#xff09;程序。 Qt 虽然经常被当做一个 GUI 库&#xff0c;用来开发图形界面应用程序&#xff0c;但这并不是 Qt 的全部&#xff1b; Qt 除了可以绘制漂亮的…

Mac磁盘满了去哪里删 Mac清理了回收站还是空间不足怎么办

在使用Mac电脑的过程中&#xff0c;我们经常会遇到磁盘空间不足的问题。尤其是当我们清理了回收站之后&#xff0c;发现剩余空间依然不足。如何有效解决Mac磁盘空间不足的问题&#xff0c;以及当清理回收站后空间仍然不足时应怎么办呢&#xff1f;本文将为大家介绍Mac磁盘满了去…

搭建预约咨询小程序,高效便捷新选择

一、预约咨询小程序是什么&#xff1f; 预约咨询小程序是一款适用于各种生活场景包括医疗、保洁、宠物护理、法律等方面的预约咨询类小程序。 二、这款小程序有什么亮点优势&#xff1f; 预约咨询小程序适用场景广泛&#xff0c;无论是心理咨询、法律咨询&#xff0c;还是宠物…