nosql数据库 redis

一、介绍

1、redis与mysql的区别:

Redis是一种基于键值对的内存数据库,数据存储在内存中,因此读写速度非常快。它支持多种数据结构,如字符串、哈希、列表等。

MySQL是一种关系型数据库,数据以表格的形式组织存储在磁盘上,通过SQL查询语言进行操作。

2、redis持久化存储化的方式:

RDB (Redis DataBase):

在指定的时间间隔内生成数据的快照,并将快照保存到一个以.rdb为后缀的文件中,存储到磁盘上。默认开启,故障点到上一次备份之间的数据无备份

AOF (Append Only File):

以追加日志的方式记录 redis 服务器接收到的每个写操作,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复。默认关闭,完整记录数据的操作指令。

3、安装:

源码:Index of /releases/

解压 Redis 源码安装包:tar -zxvf redis-5.0.0.tar.gz

进入 Redis 目录:cd redis

编译(编译前确认操作系统已经安装 gcc)如果没有安装 gcc 会报错,重新编译前需要运行:make && make install

二、redis 主从复制的实现

1、redis主从复制原理:

Redis主从复制是一种在多个Redis节点之间同步数据的机制,旨在实现数据冗余、故障恢复、负载均衡和读写分离。通过主从复制,可以在一个主节点(Master)和一个或多个从节点(Slave)组成的集群中,确保数据的一致性和系统的高可用性。

● 步骤:

① 连接与同步请求:从节点(Slave)主动与主节点(Master)建立网络连接,发送SYNC 命令,请求复制主节点的数据。

② 主节点快照:接收到同步请求后,主节点执行后台保存操作(BGSAVE),生成当前数据集的快照(RDB文件),将生成的RDB文件发送给从节点。

③ 从节点加载与重放:从节点接收并载入RDB文件,然后按照接收到的命令流顺序执行这些写操作,使得自身数据状态与主节点在快照时刻一致。

④ 增量复制:全量同步完成后,主节点持续将后续接收到的所有写命令发送给从节点。从节点实时接收并执行这些命令,保持与主节点数据的实时同步。

⑤ 心跳检测与故障恢复:从节点周期性地向主节点发送心跳(PING)以维持连接并检查主节点状态。

2、主从复制配置:

(1) 环境:
redis master:10.1.1.100

redis slave1:10.1.1.60

redis slave2:10.1.1.80

(2) 修改配置文件:

① 配置监听地址:

在所有机器上配置监听各种的ip地址:
vim /root/redis/redis.conf

bind IP #监听地址(各自写各自的IP)

daemonize yes #后台守护进程运行

② 开启从配置:

从节点上配置主节点的ip地址和端口号

(3) 查询并测试:

① 三台集机器开启redis:

cd redis

redis-server redis.conf

② 登录主服务器查看主从关系:

③ 验证主从同步:

在主节点上添加一个key,从节点上能够查询到该key的value。

三、Sentinel(哨兵)实现Redis的高可用性

1、原理:

Sentinel(哨兵)是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进行下线状态时,自动将某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。

● 基本原理是:心跳机制+投票裁决:

① 心跳机制(Heartbeat):Sentinel节点通过定期发送心跳(PING)命令来检测Redis主节点和从节点的运行状态。

② 主观下线(Subjective Down):当一个Sentinel节点在一定时间内未收到某个节点(主节点或从节点)的响应时,它会将该节点标记为“主观下线”(SDOWN)。

③ 客观下线(Objective Down):当多个Sentinel节点都报告同一个节点为“主观下线”时,该节点就被确定为“客观下线”(ODOWN)。

④ 投票裁决(Agreement Protocols):在主节点被判定为客观下线后,Sentinel节点之间需要通过投票来决定是否执行故障转移(failover)操作,它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让其他从服务器复制新的主服务器。

2、流程图:

① 正常的主从服务:

② sentinel 监控到主redis 下线:

③ 由优先级升级新主:

④ 旧主修复,作为从redis,新主照常工作:

3、sentinel 配置:

(1) 在每台机器上配置sentinel:

在主节点上配置sentinel哨兵,只需指定主机器的IP,等sentinel 服务开启,它能自己查询到主上的从redis。

cd redis

vim sentinel.conf

port 26379 #Redis Sentinel监听端口为26379,为了避免与Redis服务本身使用的默认端口(6379)冲突。

daemonize yes

sentinel monitor mymaster 10.1.1.100 6379 1 #指定主redis和投票裁决的机器数,即至少有1个sentinel节点同时判定主节点故障时,才认为其真的故障

sentinel down-after-milliseconds mymaster 30000 #如果联系不到节点30000毫秒,我们就认为此节点下线。

sentinel failover-timeout mymaster 180000 #设定转移主节点的目标节点的超时时长。

(2) 从节点指定优先级:

vim redis.conf

replica-priority 100

#复制集群中,主节点故障时,sentinel应用场景中的主节点选举时使用的优先级;数字越小优先级越高,但0表示不参与选举;当优先级一样时,随机选举。

(3) 每台机器开启sentinel服务:

./src/redis-sentinel sentinel.conf

查看当前的主节点:

(4) 模拟主master-redis 故障:

查看新的主节点:

旧的主节点恢复后,自动变为从节点,直到新的主节点故障后再重新选举主节点。

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

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

相关文章

12.6.1 实验5:IOS恢复

1、实验目的 通过本实验可以掌握: copy方式恢复IOS的步骤。TFTPDNLD方式恢复IOS的步骤。Xmodem方式恢复IOS的步骤。 2、实验拓扑 路由器IOS恢复的实验拓扑如下图所示。 3、实验步骤 如果工作中不慎误删除路由器IOS,或者升级了错误版本的IOS&#xff…

Sylar C++高性能服务器学习记录06 【线程模块-代码分析篇】

早在19年5月就在某站上看到sylar的视频了,一直认为这是一个非常不错的视频,还有幸加了sylar本人的wx,由于本人一直是自学编程,基础不扎实,也没有任何人的督促,没能坚持下去,每每想起倍感惋惜。恰…

机器学习day3

一、距离度量 1.欧氏距离 2.曼哈顿距离 3.切比雪夫距离 4.闵可夫斯基距离 二、特征与处理 1.数据归一化 数据归一化是一种将数据按比例缩放,使之落入一个小的特定区间的过程。 代码实战 运行结果 2.数据标准化 数据标准化是将数据按照其均值和标准差进行缩放的过…

2024最新版JavaScript逆向爬虫教程-------基础篇之面向对象

目录 一、概念二、对象的创建和操作2.1 JavaScript创建对象的方式2.2 对象属性操作的控制2.3 理解JavaScript创建对象2.3.1 工厂模式2.3.2 构造函数2.3.3 原型构造函数 三、继承3.1 通过原型链实现继承3.2 借用构造函数实现继承3.3 寄生组合式继承3.3.1 对象的原型式继承3.3.2 …

paddle ocr v4 微调训练文字识别模型实践

识别步骤参考:https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/recognition.md 微调步骤参考:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7.1/doc/doc_ch/finetune.md 训练必要性 原始模型标点符号和括号容易识别不到 数据准备…

【漏洞复现】Weblogic 任意文件上传漏洞(CVE-2018-2894)

漏洞简介 Oracle在7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page在"生产模式"下默认不开启,所以该漏洞有一定限制,利用该漏洞,可以上传任意.jsp文件&#x…

用Redis实现获取验证码,外加安全策略

安全策略 一小时内只能获取三次,一天内只能获取五次 Redis存储结构 代码展示 import cn.hutool.core.util.RandomUtil; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.jupiter.api.Test; import org.spri…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

RK3588 - RKNN(Rockchip 神经处理单元)的逆向工程

本文翻译自https://jas-hacks.blogspot.com/2024/02/rk3588-reverse-engineering-rknn.html RK3588 NPU 的内部操作和功能主要隐藏在名为RKNPU2的闭源 SDK 中。由于对大型语言模型 (LLM) 的兴趣以及对transform模型最佳矩阵乘法的追求,想了解 RKNPU SDK 新引入的矩阵…

值得让英伟达CEO黄仁勋亲自给OpenAI配送的AI服务器!一文带你了解算力,GPU,CPU!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

【C++】双指针算法:和为s的两个数字

1.题目 虽然在牛客上是个中等题,但我感觉是比较简单的。大家在看完这篇文章后可以看看我的上一篇文章:有效三角形的个数。本文章的题目的解法只是有效三角形的个数这道题目的一个环节。看懂这篇文章后可以更好的解决有效三角形个数那道题目! …

电力系统IEC-104报文主要常用详解

文章目录 1️⃣ IEC-1041.1 前言1.2 报文分类1.3 U帧报文1.3.1 常见报文1.3.1 报文解析 1.4 S帧报文1.4.1 说明1.4.2 报文解析 1.5 I帧报文1.5.1 报文解析 1.6 控制域I帧报文S帧报文U帧报文介绍 1.7 ASDU1.7.1 常见类型标识1.7.2 常见结构限定词1.7.3 常见传送原因1.7.4 信息体…

艾瑞泽5汽车电子控制单元CAN通信数据读写车辆网络系统交互接口

艾瑞泽5的网关接口数据交换通常涉及车辆内部电子设备之间的信息传输,包括车身系统、娱乐系统、远程控制、车辆状态监控、CAN数据采集分析、整车DBC控制策略等信息。 艾瑞泽5作为一款采用CAN协议的汽车,其CAN通信的开发可以提高车辆的安全性、可靠性和实…

Visual Studio Code使用

目录 1.python的调试 2.c的运行 方法1: 方法2: 3.c的调试 3.1调试方法一:先生成执行文件,再调试 3.2调试方法二:同时生成执行文件,调试 4.tasks.json 与launch.json文件的参考 4.1C生成执行文件tas…

uniapp H5实现签名

第一种&#xff1a;跳转签名页面 1、创建审核页面audit.vue <template><view><uni-section title""><view class"auditClass"><uni-forms :model"baseFormData" ref"baseFormRef" :rules"rules&quo…

数据结构初阶——树和二叉树

数据结构初阶——树和二叉树 1. 树的概念和结构1.1 树的概念1.2 树的表示 2. 二叉树2.1 二叉树的概念和结构2.2 二叉树的存储结构2.2.1 顺序存储2.2.2 链式存储 3. 二叉树的顺序结构及实现——堆3.1 堆的概念和结构3.2 堆的实现3.2.1 堆的定义3.2.2 堆的向上调整3.2.3 堆的向下…

【网络安全】安全事件管理处置 — 事件分级分类

专栏文章索引&#xff1a;网络安全 有问题可私聊&#xff1a;QQ&#xff1a;3375119339 目录 一、安全事件分级 二、应急事件分级 三、安全事件分类 四、常见安全事件原因分析 1.web入侵 2.漏洞攻击 3.网络攻击 一、安全事件分级 在对安全事件的应急响应过程中&#xf…

【Hadoop】-Apache Hive概述 Hive架构[11]

目录 Apache Hive概述 一、分布式SQL计算-Hive 二、为什么使用Hive Hive架构 一、Hive组件 Apache Hive概述 Apache Hive是一个在Hadoop上构建的数据仓库基础设施&#xff0c;它提供了一个SQL-Like查询语言来分析和查询大规模的数据集。Hive将结构化查询语言&#xff08;…

LT8711UXD助力新款Swtich游戏机底座《4K/60HZ投屏方案》

Nintendo Switch&#xff08;OLED版&#xff09;正面搭载了一块分辨率为720P的7.0英寸OLED屏幕&#xff1b;具有白色和电光蓝电光红2种颜色&#xff1b;机身长度102毫米&#xff0c;宽度242毫米&#xff0c;厚度13.9毫米&#xff0c;重量约420克。 [2]Nintendo Switch&#xff…

明天报名!!济宁教师招聘报名照片及常见问题

明天报名!!济宁教师招聘报名照片及常见问题 山东济宁教师招聘1000多人 报名时间: 2024年4月25日9:00-4月28日16:00 缴费时间: 2024年4月25日11:00-4月30日16:00 打印准考证:2024年5月23日9:00-5月26日9:30 初审时间: 2024年4月25日11:00-4月29日16:00 查询时间: 2024年4月…