互联网Web应用缓存系统的分类
来源:互联网 发布:郑凯淘宝店铺链接 编辑:程序博客网 时间:2024/06/05 23:08
目前Web应用的缓存方式多种多样,有APC,File,SQLite,Memcache等等各种类库实现着不同的缓存方式,如果单纯按他们的性能高低对他们进行选择,那将毫无意义,不但不会使你的应用加速,反而有可能给你带来灾难的后果,只有通过了解他们的实现方式,根据具体应用具体选择,才会使缓存系统发挥出最大的性能。
按照缓存系统存储方式不同,可以将缓存系统分为基于内存的缓存与基于文件的缓存。
PHP中,APC恐怕是最典型的基于内存的缓存,速度超级快,读写一个简单的32字节的字符串,可以达到1000000次/秒,这样的读写速度几乎可以忽略掉由于引入了额外的缓存系统而带来的性能消耗。
而对于基于文件的缓存系统来说,ZendFramework有一个基于文件的后端缓存实现(File)比较典型,基于文件的缓存系统具体读写速度没有做过评测,其性能由于受到磁盘IO的限制,所以远远不如内存型缓存速度来的快。
基于内存、磁盘这两种存储方式的基础上,通过存储不同格式的文件,或者提供不同的访问接口我们就可以实现不同的缓存系统了。例如最近非常流行的Memcache,就是在内存存储的基础上提供Socket的访问方式。再例如MemcacheDB,就是在将存储方式更改为磁盘文件,而访问方式不变。
按照缓存系统的可访问范围来分,又可以分为进程级缓存,单机缓存,分布式缓存。
同样的,APC同样是进程级缓存的典型代表,一个PHP FastCGI主进程就会开启一段APC SHM,并且与子进程共享,而多个PHP FastCGI主进程之间的APC SHM相互独立,无法共享,这恐怕也是APC缓存的一大缺陷。
文件型缓存则是单机缓存的代表,假如我们曾经将PHP的Session存储在文件内,一定会遇到多个Web服务器共享缓存的问题,这正是受文件型缓存访问范围的限制导致的。
分布式缓存系统则以Memcache为代表,他提供一个基于Socket的访问方式,使得该缓存系统支持远程读写访问。尽管这个缓存的内容可能是存在内存中,也可能是存在文件内。
其实话说回来,从本质上说,不同的缓存系统就是数据存储方式的不同与数据读写方式的不同,不同的存储方式与不同的读写方式的组合,造就了今天缓存系统百花齐放的场面,只有针对具体应用,判断各个缓存系统优缺点以及局限性,才能选择出最适合自己使用的缓存系统。
按照缓存系统存储方式不同,可以将缓存系统分为基于内存的缓存与基于文件的缓存。
PHP中,APC恐怕是最典型的基于内存的缓存,速度超级快,读写一个简单的32字节的字符串,可以达到1000000次/秒,这样的读写速度几乎可以忽略掉由于引入了额外的缓存系统而带来的性能消耗。
而对于基于文件的缓存系统来说,ZendFramework有一个基于文件的后端缓存实现(File)比较典型,基于文件的缓存系统具体读写速度没有做过评测,其性能由于受到磁盘IO的限制,所以远远不如内存型缓存速度来的快。
基于内存、磁盘这两种存储方式的基础上,通过存储不同格式的文件,或者提供不同的访问接口我们就可以实现不同的缓存系统了。例如最近非常流行的Memcache,就是在内存存储的基础上提供Socket的访问方式。再例如MemcacheDB,就是在将存储方式更改为磁盘文件,而访问方式不变。
按照缓存系统的可访问范围来分,又可以分为进程级缓存,单机缓存,分布式缓存。
同样的,APC同样是进程级缓存的典型代表,一个PHP FastCGI主进程就会开启一段APC SHM,并且与子进程共享,而多个PHP FastCGI主进程之间的APC SHM相互独立,无法共享,这恐怕也是APC缓存的一大缺陷。
文件型缓存则是单机缓存的代表,假如我们曾经将PHP的Session存储在文件内,一定会遇到多个Web服务器共享缓存的问题,这正是受文件型缓存访问范围的限制导致的。
分布式缓存系统则以Memcache为代表,他提供一个基于Socket的访问方式,使得该缓存系统支持远程读写访问。尽管这个缓存的内容可能是存在内存中,也可能是存在文件内。
其实话说回来,从本质上说,不同的缓存系统就是数据存储方式的不同与数据读写方式的不同,不同的存储方式与不同的读写方式的组合,造就了今天缓存系统百花齐放的场面,只有针对具体应用,判断各个缓存系统优缺点以及局限性,才能选择出最适合自己使用的缓存系统。
0 0
- 互联网Web应用缓存系统的分类
- Web系统中缓存的应用
- 互联网应用的分类和思考
- 互联网应用的缓存实践分享
- 移动互联网应用分类
- 使用缓存提高Web应用系统性能
- web应用系统架构--缓存架构策略
- web应用的缓存监听器
- 系统缓存全解析1:缓存的分类
- Web系统下Office文档的处理 之OpenXml应用分类资料
- Web系统下Office文档的处理 之OpenXml应用分类资料
- 分类信息网会成为中国互联网的主要应用吗?
- 企业级的业务系统与互联网应用
- WEB应用的缓存兼容性设计
- Web应用的缓存设计模式
- Web应用的缓存设计模式
- Web应用的缓存设计模式
- Web应用的缓存设计模式
- 总结web系统的架构
- iOS-Reachability的使用
- 小马哥 ------高仿三星S5刷机 高仿三星G9006系列拆机主板机型图与开机界面图
- x264与JM区别。JM适合科研,x264适合商业应用
- JobTracker作业启动过程分析
- 互联网Web应用缓存系统的分类
- ASP 留言板
- java对象的多态性
- iOS开发之应用首次启动显示用户引导
- This version of the rendering library is more recent than your version of ADT plug-in. Please update
- 数据结构与算法分析笔记(7)——栈和队列
- 如何缩小码农和高手的差距
- 黑马程序员----------Android自学第二天总结(网络下载和解析)
- iOS ASI详解