【Redis】前言--redis产生的背景以及过程
一.介绍
为什么会出现Redis这个中间件,从原始的磁盘存储到Redis中间又发生了哪些事,下面进入正题
二.发展史
2.1 磁盘存储
最早的时候都是以磁盘进行数据存储,每个磁盘都有一个磁道。每个磁道有很多扇区,一个扇区接近512Byte。
那要从磁盘中读取数据,有两个指标很重要就是:寻址速度 和 带宽
磁盘:寻址速度是ms的,带宽是GB/M的。
内存:寻址速度是ns级的,带宽也比磁盘大上好几个数量级。
结论:磁盘比内存在寻址上慢了接近10W倍。
当数据文件很大的时候,存储的时候我们的面临的问题是,I/O问题。在读写文件时,我们常常面临很大的I/O成本问题。但是最初的解决方案是加一个buffer。
I/O 成本问题是指:假设 1T的数据存储在硬盘,每个扇区512Byte,上层创建很大的索引才能索引住每个扇区数据。操作系统无论都多少,都是最少从4k拿
总结:数据很大的时候,I/O 会越慢,最终磁盘会成为瓶颈。
2.2 数据库时代
当关系型数据库出现,创建了一个data page 概念,data page 大小是4k,这个4k和磁盘的4k对应上,正好是一次 I/O.
数据存储在数据库的时候,就是很多4k的data page 小格子,如果只存数据不建索引,数据的读取还是会很慢,因为读取的时候都是全量I/O.所以关系型数据库会再创建4k的索引,提高查询的效率,索引的 结构是B+树。
B+树是B树的一种变体,也属于平衡多路查找树,大体结构与B树相同,包含根节点、内部节点和叶子节点。多用于数据库和操作系统的文件系统中,由于B+树内部节点不保存数据,所以能在内存中存放更多索引,增加缓存命中率。另外因为叶子节点相连遍历操作很方便,而且数据也具有顺序性,便于区间查找
创建表的时候,每个列会设定数据类型,数据类型决定了字节宽度,当所有列的类型确定,则一行的数据宽度是固定的,往4k的data page 里面整体存储,所以数据库倾向于行级存储,好处就是修改数据的时候不需要移动数据,在原本的位置复写就可以了。
数据和索引都是在磁盘里,select 语句的where 条件命中内存的B+树的树干,然后走索引读取数据到内存里,内存是比较快的。

2.3 key-value数据库的产生
我们将数据库发展到极致,产生出类似SAP公司的HANA数据库。这种数据库,硬件需求大,内存约2T,硬件服务费很贵。不适合小中型公司选择。
随着互联网的发展,我们面临了一个新的问题。如何才能抵挡高并发,大数据量导致的查找变慢呢?(注意,数据量变大,仅仅影响多范围数据查找,单主键索引数据查找并不会影响性能。我们的业务逻辑,通常是多条数据查找,所以才会有瓶颈)
于是我们的k-v数据库产生了,redis 应运而生。
三.总结
redis的诞生,解决了应对实际业务中对高并发,大数量业务,提供更丰富API使用以及丰富多样的数据结构。后续会从数据结构开始,一步步揭开redis的面纱。
如有侵权请联系 删除,谢谢。
相关文章:
【Redis】前言--redis产生的背景以及过程
一.介绍 为什么会出现Redis这个中间件,从原始的磁盘存储到Redis中间又发生了哪些事,下面进入正题 二.发展史 2.1 磁盘存储 最早的时候都是以磁盘进行数据存储,每个磁盘都有一个磁道。每个磁道有很多扇区,一个扇区接近512Byte。…...
Java面试-微服务篇-SpringCloud
Java面试-微服务篇-SpringCloud SpringCloud 常见组件注册中心Eureka, Nacos负载均衡Ribbon服务雪崩, 熔断降级微服务的监控来源 SpringCloud 常见组件 通常情况下 Eureka: 注册中心Ribbon: 负载均衡Feign: 远程调用Hystrix: 服务熔断Zuul/Gateway: 网关 SpringCloudAlibaba…...
Git使用详解
文章目录 ⭐️写在前面的话⭐️📌What is it?Git的诞生 🌈Why learn it?集中式vs分布式 🧲Who does it?🎈When to use it? And Where to use it?💊How to use it?(重点)1、安装Git在Linux…...
智慧楼宇可视化视频综合管理系统,助力楼宇高效安全运行
随着互联网技术的进步和发展,智能化的楼宇建设也逐步成为人们选择办公场所是否方便的一个重要衡量因素。在智能化楼宇中,安全管理也是重要的一个模块。得益于互联网新兴技术的进步,安防视频监控技术也得到了快速发展并应用在楼宇的安全管理中…...
【opencv】计算机视觉:实时目标追踪
目录 前言 解析 深入探究 前言 目标追踪技术对于民生、社会的发展以及国家军事能力的壮大都具有重要的意义。它不仅仅可以应用到体育赛事当中目标的捕捉,还可以应用到交通上,比如实时监测车辆是否超速等!对于国家的军事也具有一定的意义&a…...
生态对对碰|华为OceanStor闪存存储与OceanBase完成兼容性互认证!
近日,北京奥星贝斯科技有限公司 OceanBase 数据库与华为技术有限公司 OceanStor Dorado 全闪存存储系统、OceanStor 混合闪存存储系统完成兼容性互认证。 OceanBase 数据库挂载 OceanStor 闪存存储做为数据盘和日志盘,在 OceanStor 闪存存储系统卓越性能…...
微服务负载均衡器Ribbon
1.什么是Ribbon 目前主流的负载方案分为以下两种: 集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如 Nginx)。 客户端根据…...
win10戴尔电脑安装操作系统遇到的问题MBR分区表只能安装GPT磁盘
首先按F2启动boot管理界面 调整启动盘的启动顺序,这里启动U盘为第一顺序。 第一步 选择安装程序的磁盘 第二步 转换磁盘为GPT磁盘 一般出现 磁盘0和1,说明存在两个盘 ,这里两个盘不是说的是C盘和D盘的问题,而是在物理上实际存在…...
阿里云服务器(vgn7i-vws) anaconda(py39)+pytorch1.12.0(cu113)
用xshell连接ip地址,端口号22,输入用户密码 安装anaconda 2022 10 py3.9 wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh sha256sum Anaconda3-2022.10-Linux-x86_64.sh #校验数据完整性 chmod ux Anaconda3-2022.10-…...
使用 STM32F7 和 TensorFlow Lite 开发低功耗人脸识别设备
本文旨在介绍如何使用 STM32F7 和 TensorFlow Lite框架开发低功耗的人脸识别设备。首先,我们将简要介绍 STM32F7 的特点和能力。接下来,我们将讨论如何使用 TensorFlow Lite 在 STM32F7 上实现人脸识别算法。然后,我们将重点关注如何优化系统…...
【wireshark】基础学习
TOC 查询tcp tcp 查询tcp握手请求的代码 tcp.flags.ack 0 确定tcp握手成功的代码 tcp.flags.ack 1 确定tcp连接请求的代码 tcp.flags.ack 0 and tcp.flags.syn 1 3次握手后确定发送成功的查询 tcp.flags.fin 1 查询某IP对外发送的数据 ip.src_host 192.168.73.134 查询某…...
使用Java连接Hbase
我在网上试 了很多代码,但是大部分都不能实现,Java连接Hbase,一直报一个错 java.util.concurrent.ExecutionException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode NoNode for /hbase/hbaseid一直也不清楚为什…...
OCR是什么意思,有哪些好用的OCR识别软件?
1. 什么是OCR? OCR(Optical Character Recognition)是一种光学字符识别技术,它可以将印刷体文字转换为可编辑的电子文本。OCR技术通过扫描和分析图像中的文字,并将其转化为计算机可识别的文本格式,从而…...
Springmvc实现增删改差
一、包结构 二、各层代码 (1)数据User public class User {private Integer id;private String userName;private String note;public User() {super();}public User(Integer i, String userName, String note) {super();this.id i;this.userName userName;this.note note;…...
CentOS 7 使用cJSON 库
什么是JSON JSON是一种轻量级的数据交换格式,可读性强、编写简单。键值对组合编写规则,键名使用双引号包裹,冒号:分隔符后面紧跟着数值,有两种常用的数据类型是对象和数组。 对象:使用花括号{}包裹起来的…...
Linux——使用kill结束进程并恢复进程
目录 查看进程结束进程修复进程 查看进程 在linux中,关闭某进程之前先查看已经在运行的进程有哪些,使用下面命令查看: ps aux | grep -i apt 命令查看哪个进程正在使用 apt结束进程 结束某线程的命令为: sudo kill -9 PID 命令…...
【Linux虚拟内存的配置】
设置Linux虚拟内存 注意:在做项目时,电脑内存不够用,怎么办? 这里给大家提供了一种解决方案,用磁盘换内存,具体如下: 虚拟内存swap介绍 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内…...
基于C#实现外排序
一、N 路归并排序 1.1、概序 我们知道算法中有一种叫做分治思想,一个大问题我们可以采取分而治之,各个突破,当子问题解决了,大问题也就 KO 了,还有一点我们知道内排序的归并排序是采用二路归并的,因为分治…...
HTML CSS登录网页设计
一、效果图: 二、HTML代码: <!DOCTYPE html> <!-- 定义HTML5文档 --> <html lang="en"> …...
dos 命令 判断路径中包含某字符并移动文件
SET GenFolder C:\Users\administered\Desktop\t2\old_file set path1C:\Users\administered\Desktop\t1\crontab_master set path2C:\Users\administered\Desktop\t2\old_file if not exist %GenFolder% ( echo %GenFolder%目录不存在,已创建该目录&#x…...
树莓派Pico玩转双核:用FreeRTOS创建两个独立任务(附代码分析)
树莓派Pico双核实战:FreeRTOS任务分配与核间协作全解析 当开发者第一次将FreeRTOS运行在树莓派Pico上时,往往只利用了RP2040芯片的一个核心——这就像只使用了汽车发动机的一半气缸。实际上,这款售价仅4美元的微控制器搭载了两个Arm Cortex-…...
Qwen3-4B-Thinking效果展示:对比原版Qwen3-4B,推理链准确率提升实测
Qwen3-4B-Thinking效果展示:对比原版Qwen3-4B,推理链准确率提升实测 1. 模型介绍与核心升级 1.1 基础架构与特性 Qwen3-4B-Thinking-2507-Gemini-2.5-Flash-Distill是基于通义千问Qwen3-4B官方模型的升级版本,保留了原版4B参数规模的稠密(…...
华硕a豆 I1403ZA_ADOL14ZA 原厂Win11 22H2系统分享下载-宇程系统站
华硕a豆I1403ZA_ADOL14ZA笔记本预装了Windows 11 22H2家庭版系统,并配备了一键恢复功能,可在系统故障或更换硬盘后通过原厂工厂文件轻松恢复。用户仅需准备一个容量大于20G的U盘,按照提供的安装教程操作即可完成系统恢复,确保设备…...
JS逆向实战:Hook技术对抗与绕过无限Debugger的防御策略
1. 无限Debugger的常见类型与原理剖析 第一次遇到无限Debugger时,我正试图抓取某电商网站的价格数据。刚打开开发者工具,页面就像卡死的音乐盒一样不断弹出调试窗口,鼠标根本来不及点"继续执行"。这种防御机制看似无解,…...
egergergeeert FLUX模型优势:长文本理解能力在多对象提示词中验证
FLUX模型优势:长文本理解能力在多对象提示词中验证 1. 引言 在图像生成领域,提示词的质量直接影响最终输出效果。传统文生图模型在处理复杂、多对象的提示词时往往表现不佳,容易出现对象遗漏、属性混淆等问题。本文将重点介绍egergergeeert…...
别再只玩点灯了!用ESP32+MQTT打造可商用的智能花盆原型,聊聊物联网产品开发流程
从DIY到商用原型:基于ESP32的智能花盆开发全流程解析 当你的窗台绿植开始通过MQTT协议向你汇报土壤湿度时,物联网的魅力才真正显现。这不是科幻电影里的场景,而是每个开发者都能实现的智能硬件项目。本文将带你超越简单的点灯实验,…...
永磁同步电机在工业风扇中的应用
随着工业制造、物流仓储、商业建筑等领域对空间通风需求的不断提升,对于通风效率、节能降耗以及智能管理的要求也日益严格。在这样的背景下,工业风扇行业迎来了技术革新与市场拓展。2026年,一些具备研发实力、能适配多种场景且拥有全球化服务…...
iFakeLocation:iOS设备虚拟定位的终极指南,免费跨平台解决方案
iFakeLocation:iOS设备虚拟定位的终极指南,免费跨平台解决方案 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 想要在iOS设备上自由…...
从230ms到68ms:一个真实金融风控场景中,C# .NET 11 + TinyBERT模型端到端推理延迟压测与9项关键调优决策回溯(含火焰图溯源)
第一章:C# .NET 11 AI 模型推理加速 性能调优指南.NET 11 引入了原生 ONNX Runtime 集成、SIMD-aware 张量操作库以及 JIT 编译器对 Span 和 ReadOnlyMemory 的深度优化,为 AI 模型推理提供了前所未有的底层性能潜力。要充分释放这些能力,需从…...
从ZED2双目相机到VINS-Fusion:一个机器人开发者的完整环境搭建与避坑实录
从ZED2双目相机到VINS-Fusion:一个机器人开发者的完整环境搭建与避坑实录 作为一名长期从事机器人感知算法开发的工程师,我最近在将ZED2双目相机与VINS-Fusion系统整合时,经历了一段充满挑战但又收获颇丰的旅程。这篇文章将详细记录我从零开始…...
