【Memcached】基础知识-Cache
来源:互联网 发布:富云软件科技有限公司 编辑:程序博客网 时间:2024/05/20 04:29
这两天在学习Memcached的时候,想起来之前学习的操作系统中的缓存,所以决定从这个熟悉的东西入手,来学习Memcached。
Cache原始名词意思:藏物处,隐藏处,藏匿的珍宝。而如今的网络词多翻译为:高速缓存,快取,缓冲。
【操作系统中的缓存】
Cache,这个词在我们学习操作系统的时候就已经接触了。那时候我们接触的是高速缓冲存储器。高速缓冲存储器的意思是指存取速度比一般随机存取记忆体来得快的一种RAM,它使用昂贵但快速的SRAM技术。它存在与主存与CPU之间的一级存储器,容量小但存取速度要比主存高,接近于CPU的速度。
在高速缓存器中,主要由三大部分组成:Cache存储体(存放主存调入的指令与数据块),地址转换部件(建立目录表以实现主存地址到缓存地址的在转换),替换部件(在缓存已满时按照一定的策略进行数据块替换,并修改地址转换部件)。
而我们常说的缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
这些都是操作系统中所讲的缓存知识,在百度百科中都有介绍,这是我们之前接触过的缓存知识。
【网站中的缓存】
而现在我们接触的是BS的内容,对于Web内容的缓存又是怎样的呢?其实,原理都是一样的。如今的网络应用快速增长,大数据造成网络的堵塞和服务器的超载,导致客户从访问到接收信息的时间增长。而缓存技术正解决了这一问题,它利用的是客户访问的时间局部性(Temproral Locality),如果一个信息项正在被访问,那么在近期它很可能还会被再次访问,我们将访问过的东西在Cache中存放一个副本,这样下次访问的时候,直接从Cache中访问就可以了。
对于网站的缓存,我们分为2种,一种是客户端缓存,一种是服务端缓存。
1、客户端缓存
客户端缓存又分为:浏览器缓存,网关或代理服务器缓存。
浏览器缓存指的是用户在访问同一个页面的时候,将不再从服务器下载页面,直接从本机缓存目录读取,再显示到页面上。
网关或代理服务器缓存:指的是将网页缓存网关服务器上,多用户访问同一个页面时,将直接从网关服务器中获取。
而现在大多都用服务器缓存,这样能够保证用户访问到的内容是最新的。
2、服务端缓存
服务端缓存分为:页面缓存,数据缓存,数据库缓存
页面缓存:是将动态页面直接生成静态页面放在服务器端,当用户访问相同页面的时候,静态页面直接下载到客户端,而不需要进行数据库的访问,大大节约了服务器的负载。页面缓存也可以缓存页面的部分,而不是全部,例如网页片段缓存技术,ESI cache。
数据缓存:就是指将查询出的结果存放到内存中,下次如果还查询的话,直接从内存中返回数据,不需要进行数据库的查询。相应的缓存框架有:Memcached和 ehcache。下图简单介绍了memcached的工作原理。
数据库缓存:指的是一般由数据库提供,例如oracle,可以对表建立高速缓存,提高经常使用数据的访问速度。
【总结】
- 【Memcached】基础知识-Cache
- Memcached 基础知识
- Memcached 基础知识
- Cache基础知识
- cache基础知识
- Spring Cache注解+Memcached
- Spring Cache集成memcached
- memcached的基础知识
- asp.net Cache vs memcached
- asp.net Cache vs memcached
- 用Memcached实现Spring Cache
- Spring @Cache注解集成memcached
- CPU的cache基础知识
- Cache基础知识总结
- memcached基础知识和简单命令
- Memcached 缓存系统的基础知识
- memcached入门基础知识(2)
- MemCached Cache Java Client封装优化历程
- Android UI效果之绘图篇(一)
- 数组最大值放中间,其他依次放其左右
- Ubuntu下挂载win7的磁盘分区
- 代码学习心情日志20162-21
- java安全——数字签名+代码签名
- 【Memcached】基础知识-Cache
- java内存分析,栈内存,堆内存
- 欢迎使用CSDN-markdown编辑器
- 托管Dll动态调用
- UDL ODBC 获取数据库连接字符串
- JavaWeb----JDBC
- OpenCV学习06
- ImageView中src和background属性的主要亮点区别
- 计算机时间、unix时间、linux时间、java时间为何以1970年1月1日为原点?从1970年1月1日开始计算?