Redis前置知识——为什么引入Redis

在这里插入图片描述

在计算机中,数据是存储在文件中,文件放在
磁盘中的,磁盘的维度,有两个指标
1、寻址:速度是ms级别的
2、带宽:单位时间,有多少数据会流过去,单位是M,G级别

内存
1、寻址:ns级别的
秒的单位 秒>毫秒>微妙>纳秒
在寻址上,内存的寻址速度是磁盘的10万倍
2、带宽:也是远远大于磁盘

I/O buffer:成本问题
磁盘与此单,扇区,一扇区 512byte,如果数据过大,带来成本变大:索引
所以在格式化磁盘的时候,会有4k对齐,即基本单位,最小为4k,所以在操作系统中,无论你读多少,最少都是4k从磁盘中拿。在MySQL中,innodb引擎,每次读取,最小单位为16k。

文件放在磁盘中,在Linux中,可以通过grep awk读取,java中也可以通过程序io读取,随着文件的变大,速度就会变慢,因为硬盘已经成为了io瓶颈

所以数据库出现了,数据库也有个概念
data page:大小也为4k,与硬件磁盘对应,正好每次读取的时候,就是一次io
数据库的索引即可大大的提升查询速度

关系型数据库建表:必须给出schema
类型:字节宽度
每行宽度就已经定死了,如果后面你插入数据,宽度定死,已经确定,基本都是行级存储,插入也已经占位,以后增删改,不用移动数据,已经定死

数据和索引都是存入在磁盘中,真的查询的时候,在内存中准备一个b+树,所有的叶子节点就是索引。树干都在内存中,树干中查询命中,就会将磁盘中的data page放入内存中。

数据库表很大的时候,性能下降?
如果表有索引,增删改变慢
查询
1、走了索引,少量查询依然很快
2、并发大的时候,可能获取很多data page到内存中,受到硬盘带宽影响速度

磁盘中会较慢,如果全用内存的数据库,价格太高。所以折中就提出了缓存的概念,即Redis,memcache

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值