Cache(缓存)和Buffer(缓冲)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cache(缓存)和Buffer(缓冲)相关的知识,希望对你有一定的参考价值。

什么是缓存、缓存区?

        Cache(缓存)是“读”数据时在内存的一种优化技术。

        缓存区就是占用内存中的一块区域来做进程的数据缓存,比如WEB服务,当用户第一次请求时,进程会从磁盘(硬盘)中拿数据(结果),将结果存储到缓存区,当第二次该用户发起同样的请求时,则进程会在缓存区中匹配已经缓存的结果,直接返回数据。内存的读写效率是磁盘的10倍以上。所以该技术增加了进程处理数据的效率,并降低了磁盘IO的使用。


什么是缓冲、缓冲区?

        Buffer(缓冲)是“写”数据时在内存的一种优化技术。

        缓冲区就是占用内存中的一块区域来做进程的数据缓冲,比如上传一个数据(文件),数据由进程处理,进程调用内存持续性的将数据写入磁盘,数据在内存中会被分成大小不均匀的信息数据块持续性的写入磁盘,这种写入磁盘的方式执行效率比较慢,而且因为大小不均会导致磁盘碎片。而Buffer则是对这些大小不均匀的信息数据块流量整形的一项技术,这些数据块首先会存入缓冲区,等待积累的多个数据块占满整个缓冲区大小时,然后从缓冲区写入到磁盘中。所以一般情况下一个缓冲区大小等于系统的分页大小。

        系统的分页大小则就是磁盘的文件系统的存储块大小。如果是Windows系统一般我们在格式化的时候可以看到,即“分配单元大小”。如果是Linux则可以通过“ getconf PAGE_SIZE”命令查看。


以上是关于Cache(缓存)和Buffer(缓冲)的主要内容,如果未能解决你的问题,请参考以下文章

Linux中的buff/cache内存

cache和buff的区别

Linux [buff/cache]内存缓存占用过高分析和优化

缓冲(cache)和缓存(buffer)

buff/cache设置上线

Linux中Buffer和Cache的区别