传统存储介绍
2018-02-15 tech storage 12 mins 6 图 4274 字
什么是存储
存储就是根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问。
- 保存
- 访问
我们一般从这三分方面了解存储:
- 存储设备
- 存储技术
- 对外接口
这个图事大学时候的课本内容,我就不多讲了。计算机存储层次之所以是这个样子,是因为人性的贪婪。
怎么说呢,我们对存储系统始终有三个基本要求,即:
- 速度快
- 存储容量大
- 成本低
寄存器
用于CPU内部各单元之间的周转,是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方,拥有非常高的读写速度。
寄存器和cpu速度相当,空间比较小在kb级别。
CPU内部的寄存器有很多种类型。
- 数据寄存器
- 地址寄存器
- 指令寄存器 …
CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。通用寄存器的数据宽度决定了处理器一次可以运行的数据量。
高速缓存Cache
缓存是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到加快访问速度的作用,它将一些经常使用的数据缓存到内存或者各种储存介质中,当再次使用时可以不用去数据库中查询,减少与数据库的交互,提高性能。
缓存又分为一级缓存、二级缓存、三级缓存,它们的作用范围不同:
- 一级缓存是session级别的。也就是只有在同一个session里缓存才起作用,当这个session关闭后这个缓存就不存在了。比如在一个事务中同时查询同一个对象,则不会两次去数据库中查询。
- 二级缓存是sessionFactory级别的。其缓存对同一个sessionFactory生产出来的session都有效。 我们通常使用其他的一些开源组件,比如 hibernate 经常使用的就是 EhCache,这个缓存在整个应用服务器中都会有效的,主要是为了存储一些比较稳定的数据,如权限,只有在用户修改了权限且重新登录时才能生效。
- 三级缓存(如果有的话)是为读取二级缓存后未命中的数据设计的—种缓存,进一步提高CPU的效率。
注意:只有一级缓存是在CPU中的,一级缓存的读取需要2-4个时钟周期;二级缓存的读取需要10个左右的时钟周期;而三级缓存需要30-40个时钟周期,但是容量一次增大。