各大网站的网址,天津网站制作策划,49619浏览器打开,同德县wap网站建设公司一.介绍 为什么会出现Redis这个中间件#xff0c;从原始的磁盘存储到Redis中间又发生了哪些事#xff0c;下面进入正题
二.发展史
2.1 磁盘存储
最早的时候都是以磁盘进行数据存储#xff0c;每个磁盘都有一个磁道。每个磁道有很多扇区#xff0c;一个扇区接近512Byte。…一.介绍 为什么会出现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的面纱。
如有侵权请联系 删除谢谢。