【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的面纱。

如有侵权请联系 15996365528@163.com 删除,谢谢。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TEMU平台商品欧盟站要求电子和电气产品提供CE-EMC(Electric)资质

CE-EMC认证是欧盟对于市场上销售的电子和电气产品所要求的一个重要认证标准。该认证指令规定了产品在电磁环境下的辐射和抗干扰性能要求,以确保产品在使用时不会对其他设备和系统产生干扰,并且能够正常工作,不受其他设备的干扰。 CE EMC认证…

五分钟,Docker安装flink,并使用flinksql消费kafka数据

1、拉取flink镜像,创建网络 docker pull flink docker network create flink-network2、创建 jobmanager # 创建 JobManager docker run \-itd \--namejobmanager \--publish 8081:8081 \--network flink-network \--env FLINK_PROPERTIES"jobmanager.rpc.ad…

PMP 考试的含金量怎么样?

这里可以三个思考题和三个价值点帮你认识PMP考试。 三个思维题 1.工作环境 PMP证书含金量的一个很大因素,就是考证的人是否对PMP证书有比较强的实际需求。相反,如果只是听别人说,PMP证书很好,不管工作中是否有需要,…

一条Update语句的执行过程是怎样的?

先看第一个问题,这里做个简单描述 ,因为我们着重还是看Update MySQL执行一条Select语句是怎么运行的? 这个问题大家在面试的时候大家都背过类似的题,而且网上也有很多答案,这里分享一个大致流程介绍,关于…

RTOS的任务触发底层逻辑

(定时器用于计时和触发事件,任务则由调度器进行调度和执行:每当时钟节拍到达时,系统会触发一个称为 tick 中断的事件。当 tick 中断发生时,操作系统会在中断服务例程中执行一定的处理,其中包括更新任务的运…

Flink之状态TTL机制内容详解

1 状态TTL机制 状态的 TTL机制就是Flink提供的自动化删除状态中的过期数据,配置 TTL的 API可以做到对状态中的数据进行冷热数据分离,将热数据一直保存在状态存储器中,将冷数据进行定期删除. 1.1 API简介 TTL常用API如下: API注解setTtl(Time.seconds(…))配置过期时长,当状态…

window非gui形式运行jmeter脚本

配置jmeter环境 新增1个环境变量: JMETER_HOMED:\Tools\apache-jmeter-5.0 【jmeter文件夹】 编辑CLASSPATH: CLASSPATH后面加上 %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar; 编辑path: path后面加上 %JM…

Java基层卫生健康云综合管理(云his)系统源码

云HIS(Cloud-Based Healthcare Information System)是基于云计算的医院健康卫生信息系统。它运用云计算、大数据、物联网等新兴信息技术,按照现代医疗卫生管理要求,在一定区域范围内以数字化形式提供医疗卫生行业数据收集、存储、…

基于C#实现赫夫曼树

赫夫曼树又称最优二叉树,也就是带权路径最短的树,对于赫夫曼树,我想大家对它是非常的熟悉,也知道它的应用场景,但是有没有自己亲手写过,这个我就不清楚了,不管以前写没写,这一篇我们…

可视化大屏时代的到来:智慧城市管理的新思路

随着科技的不断发展,智能芯片作为一种新型的电子元件,被广泛应用于各个领域,其中智慧芯片可视化大屏是一种重要的应用形式。 一、智慧芯片可视化大屏的优势 智慧芯片可视化大屏是一种将智能芯片与大屏幕显示技术相结合的产品,山海…

四肽-3——增加皮肤光滑度、紧致度,让肌肤看起来更年轻

Caprooyl四肽-3,也称为KGHK Caproic acid,是一种基于TGF-(转化生长因子β)的仿生脂肽结构,在细胞外基质成分的自然产生中发挥重要作用。肽序列是Lys-Gly-His-Lys。它可以减少细纹和皱纹的出现,提高皮肤弹性…

神经网络训练技巧

1. 逐渐增加训练数据规模,比如先在小数据集上训练,之后再增大数据集继续训练。