当前位置: 首页 > news >正文

【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%目录不存在&#xff0c;已创建该目录&#x…...

革命性转换工具:一键将Markdown转为专业PPT的终极方案

革命性转换工具&#xff1a;一键将Markdown转为专业PPT的终极方案 【免费下载链接】md2pptx Markdown To PowerPoint converter 项目地址: https://gitcode.com/gh_mirrors/md/md2pptx 还在为技术演示文稿的制作而烦恼吗&#xff1f;md2pptx&#xff0c;这款开源神器能够…...

DAMOYOLO-S模型剪枝与量化实战:基于PyTorch的模型轻量化部署

DAMOYOLO-S模型剪枝与量化实战&#xff1a;基于PyTorch的模型轻量化部署 想把手头训练好的DAMOYOLO-S目标检测模型塞进树莓派或者Jetson Nano这类边缘设备里跑起来&#xff0c;是不是经常遇到模型太大、推理太慢的尴尬&#xff1f;原版模型动辄几十上百兆&#xff0c;在资源有…...

别再死记硬背了!用Multisim仿真带你直观理解三极管的三种放大电路

用Multisim仿真破解三极管放大电路的奥秘&#xff1a;从波形观测到参数调优 虚拟实验室&#xff1a;当仿真工具遇上经典放大电路 第一次接触三极管放大电路时&#xff0c;那些密密麻麻的公式和抽象的特性曲线总让人望而生畏。共射、共集、共基三种组态的区别&#xff0c;输入输…...

如何利用 computed 配合 Vue-Router 实现动态面包屑?后台提效教程

...

别再用虚拟机了!5分钟在 Docker Desktop 里跑起你的第一个 CentOS 容器并配置开发环境

别再用虚拟机了&#xff01;5分钟在 Docker Desktop 里跑起你的第一个 CentOS 容器并配置开发环境 还在为虚拟机卡顿、资源占用高而烦恼&#xff1f;今天带你用 Docker Desktop 快速启动一个 CentOS 开发环境&#xff0c;体验秒级启动的畅快感。相比传统虚拟机动辄几分钟的启动…...

无线感知研究入门:手把手教你用CSI Tool搭建双机Monitor模式测试环境

无线感知研究实战&#xff1a;双机CSI数据采集环境搭建全指南 在无线感知研究领域&#xff0c;获取精确的信道状态信息(CSI)是行为识别、室内定位等应用的基础。本文将手把手教你搭建基于Intel 5300网卡的双机测试平台&#xff0c;从硬件准备到数据采集&#xff0c;覆盖完整工作…...

08-第六篇-超越-Coding-的泛化

第六篇:超越 Coding 的泛化 把组织与治理问题收住之后,接下来就该追问另一件事:这套经验究竟能走多远。代码是这场变化最早长出清晰形状的地方。 这不是因为程序员比别人更懂 agent,而是因为代码天然更容易版本化、测试、差分、回滚。也因此,coding 最早把 harness engi…...

Phi-4-mini-reasoning高性能推理:vLLM PagedAttention机制在128K上下文中的表现

Phi-4-mini-reasoning高性能推理&#xff1a;vLLM PagedAttention机制在128K上下文中的表现 1. 模型简介 Phi-4-mini-reasoning是一个轻量级开源模型&#xff0c;专注于高质量推理任务。作为Phi-4模型家族的一员&#xff0c;它通过合成数据训练和微调&#xff0c;特别强化了数…...

Dify日志审计配置必须在2024年底前完成升级!等保2.0 8.2.3条款强制要求的5项新增字段(user_agent、session_id、api_version)如何精准注入?

第一章&#xff1a;Dify 2026日志审计配置升级的合规性紧迫性随着《网络安全法》《数据安全法》《个人信息保护法》及最新发布的《生成式人工智能服务安全基本要求&#xff08;GB/T 43871—2024&#xff09;》全面实施&#xff0c;日志审计能力已成为AI应用平台强制性合规基线。…...

LM镜像多场景应用:游戏原画初稿、服装面料模拟、虚拟偶像建模辅助

LM镜像多场景应用&#xff1a;游戏原画初稿、服装面料模拟、虚拟偶像建模辅助 1. LM镜像核心能力介绍 LM是基于Tongyi-MAI/Z-Image底座的文生图镜像&#xff0c;专为创意设计领域打造。这个开箱即用的解决方案已经完成模型预加载和Web页面封装&#xff0c;用户无需编写任何代码…...