浅聊什么是Redis?

需求:MySQL面临大量的查询,即读写操作,因此类比CPU,给数据加缓存,Redis诞生。应用程序从MySQL查询的数据,在Redis设置缓存(记录在内存中,无需IO操作),后再需要可查询缓存。

内存满了怎么办?

定期删除:给缓存内容设置超时时间,删除随机算法选择的部分过期内容。
惰性删除:逃脱随机算法的过期键值数据,遇到查询请求即删除。
内存淘汰策略:仍然内存不足后的方法
在这里插入图片描述

常见的三种问题&应对方式

缓存穿透:查询数据不存在,绕过redis持续读写操作。
缓存击穿:热点数据被删除,大量请求到mysql。
缓存雪崩:大量数据过期删除,mysql崩溃。

缓存击穿&缓存雪崩应对方式:过期时间分布均匀 + 热点数据永不过期
缓存穿透应对方式:布隆过滤器Bloom filter
· 是基于哈希算法和位数组的,节省空间的概率数据结构
· 用于回答这个元素是否在集合中?会给出肯定的否或可能的是的回答,可能误报存在,不可能漏报-不存在一定不存在

持久化存储机制

需求:redis崩溃导致数据丢失,需提前在硬件上做持久化存储。
RDB二进制文件:按配置参数周期性备份,但是分钟级备份不能应对毫秒级请求需求,参考mysql的binlog操作命令日志,AOF持久化诞生。
AOF(Append Only File)持久化:redis命令日志文件
· 若没执行一个操作就写入硬盘中文件会严重影响性能,因此创建临时缓冲区aof_buf;
· 备份文件过大,因此出现AOF重写机制,指令合并
· 子进程重写过程中修改数据导致数据不一致,因此创建aof_rewrite_buf,存放子进程重写期间redis写入命令,子进程重写后再据此补充aof文件,替换原文件

哨兵与高可用原理

需求:通过主从复制达到高可用-减少服务不可用的时间
主节点:负责数据写入和同步(RDB文件+命令传播),复制积压缓冲区(同步给从节点的时候同时写入缓冲区以作备份)
从节点:同主节点一样,根据游标偏移量比较缺失数据内容

多个哨兵sentinel负责统筹协调,谁要是掉线了,可以选一个从节点顶上,无需程序员主动将从节点设为主节点。
· 哨兵每隔10s用info命令问候主节点,获取从节点信息;每隔1s用ping命令问候各节点看是否在线
· 哨兵发现主节点掉线为主观下线,按配置多个哨兵发现则为客观下线

故障转移:选择新的主节点,让其他从节点从新的主节点同步数据,把原来旧的主节点改成从节点
新主节点选择标准:优先级越高(如高配置)、断开主节点时间越短、复制偏移量越大

Redis集群机制

需求:提升数据容量
通过三次握手加入集群(参考TCP三次握手)
在这里插入图片描述
数据存储分配(参考哈希表):16384个哈希桶/槽位Slot,程序员按内存分配。
· 数据读写时,对键值进行哈希计算/槽位计算
· 互相知晓槽位信息,么个槽位用一个bit表示,自己负责的是1,否则0,总过2048字节
· struct clusterNode *slots[16384 / 8]额外超大数组存储每个槽由哪个节点负责
· 所有的槽位均有节点负责才是集群上线状态,否则是下线状态

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

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

相关文章

Linux(CentOS)安装Redis教程_简单快捷

一、安装依赖 因为redis是用C语言开发的,所以在安装之前需要确定是否安装gcc环境(gcc -v),如果没有安转可以执行一下命令进行安装 [rootlocalhost ~]# yum install -y gcc 二、下载安装包 1.在官网先进行下载 官网地址&#x…

Node.js-------初识Node.js与内置模块

能够知道什么是 Node.js能够知道 Node.js 可以做什么能够说出 Node.js 中的 JavaScript 的组成部分能够使用 fs 模块读写操作文件能够使用 path 模块处理路径能够使用 http 模块写一个基本的 web 服务器 一.初识Node.js 1.浏览器中的 JavaScript 的组成部分 2.Node.js 简介 …

从“量子”到分子:探索计算的无限可能 | 综述荐读

在2023年年末,两篇划时代的研究报告在《科学》(Science)杂志上引发了广泛关注。这两篇论文分别来自两个研究小组,它们共同揭示了单氟化钙分子间相互作用的研究成果,成功地在这些分子间创造出了分子量子比特。这一成就不…

理解二分类场景评估中的Recall和Precision

场景解释: 二分类场景会有两种输出。我的样本里有猫的图片和其他的图片。我的输出值是“是猫”和“非猫”。这个场景下,“是猫”是我的正样本(Postive)。“非猫”是我的负样本(Negative)。 Confusion matrix: 横向表示预测的结果。纵向表示真实的结果。…

生命之重-ICU门口的守望人

有人说如果没有经历过在ICU门口守候的人,就无法真正懂得珍惜生命。但实际情况也未必尽然,不过这种经历确实可以教会你懂得珍惜,当然希望大家都不要亲身经历。我希望能够通过讲述一个真实的故事来呈现这一观点,而不是令人难以接受的…

Linux部署Kafka2.8.1

安装Jdk 首先确保你的机器上安装了Jdk,Kafka需要Java运行环境,低版本的Kafka还需要Zookeeper,我此次要安装的Kafka版本为2.8.1,已经内置了一个Zookeeper环境,所以我们可以不部署Zookeeper直接使用。 1、解压Jdk包 t…

idea了解

1、快捷键 1.1、编辑美化相关 1.1.1、双击选中一个单词,三击选中一行代码 1.1.2、ctrlD:快速粘贴复制;光标所在复制 1.1.3、altinsert:构造方法的快速生成;toString方法快速生成;等等 1.1.4、ctrlR:快…

怎样给文件夹中的文件依次编号?选择合适的方法给文件依次编号

在日常生活和工作中,我们经常需要对文件夹中的文件进行编号,以便更好地管理和查找。编号的方式多种多样,可以根据不同的需求和场景来选择。下面,我将详细介绍如何给文件夹中的文件依次编号。 一、了解编号的目的和需求 在给文件编…

基于51单片机的智能门禁系统仿真设计

**单片机设计介绍,基于51单片机的智能门禁系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的智能门禁系统仿真设计概要 一、设计概述 本设计旨在利用51单片机为核心控制器,结合…

为什么品牌宣传需要深度稿件?媒介盒子揭秘

在信息洪流中,品牌想要占据用户心智仅靠传统的广告方式很难达成目标,只有真正有价值的信息才能吸引用户注意力,品牌方可以通过深度稿件来实现。 深度传播稿是一种高质量的、需要花费较长时间和精力来撰写的宣传文章,篇幅较长&…

SpringBoot:自定义线程池配置类

文章目录 一、前言二、案例展示1、初始版本2、代码审核意见和优化建议3、潜在问题和风险4、优化建议5、优化后的代码 三、具体使用 一、前言 有时候我们在项目中做一些长链路的跑批任务时,基于Springboot项目的定时任务,我们可以指定一个自定义的线程配…

LeetCode-热题100:206. 反转链表

题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入: head [1,2,3,4,5] 输出: [5,4,3,2,1] 示例 2: 输入: head [1,2] 输出: [2,1] 示例 3…

如何才能实现基坑自动化监测?

基坑自动化监测是一个系统性的过程,它涉及对基坑整体情况的全面了解和分析,确定监测指标,选择合适的监测传感器并进行安装和调试,配置相应的数据采集、传输和管理软件系统,以及进行系统的调试、定期维护和数据分析。以…

matlab中旋转矩阵函数

文章目录 matlab里的旋转矩阵、四元数、欧拉角四元数根据两向量计算向量之间的旋转矩阵和四元数欧拉角转旋转矩阵旋转矩阵转欧拉角旋转矩阵转四元数参考链接 matlab里的旋转矩阵、四元数、欧拉角 旋转矩阵dcmR四元数quatq[q0,q1,q2,q3]欧拉角angle[row,pitch,yaw] % 旋转矩阵…

2024年04月数据库流行度最新排名

点击查看最新数据库流行度最新排名(每月更新) 2024年04月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多,这个数据库就被认为越受欢迎。这是一个领先指标。原始数…

项目:USB键盘和鼠标的复合设备

我们的复合设备使用一个物理设备就可以完成多个功能。 使用复合设备同时完成USB键盘和鼠标功能,它的主要实现方式有两种, 第一个就是我们将多个设备描述符合并成一个,这个相对比较简单,我们只要根据相应的报告描述符处理数据就可…

Adaboost集成学习 | Matlab实现基于LSTM-Adaboost长短期记忆神经网络结合Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Adaboost集成学习 | Matlab实现基于LSTM-Adaboost长短期记忆神经网络结合Adaboost集成学习时间序列预测(股票价格预测) 模型设计 股票价格预测是一个具有挑战性的时间序列预测问题,可以使用深度学习模型如…

CNVD-2024-06148 Mingsoft MCMS v5.2.9 前台查询文章列表接口 SQL注入漏洞分析

MCMS是中国铭飞(MingSoft)公司的一个完整开源的J2ee系统。江西铭软科技有限公司MCMS v5.2.9版本存在SQL注入漏洞,该漏洞源于/content/list.do中的categoryType参数缺少对外部输入SQL语句的验证,攻击者可利用该漏洞获取数据库敏感数…

[Linux]基础IO(上)--理解文件系统调用、文件描述符、万物皆文件

一、文件的理解 每种语言都有进行文件操作的函数接口,例如C语言的fopen、fwrite、fprintf等等,但是进行文件操作的前提是代码已经跑起来,因为文件的打开与关闭要通过CPU来运行程序代码,所以打开文件的本质是进程打开文件&#xff…

【C/C++】C++学籍信息管理系统(源码+报告)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…