如果不考虑其他任何问题,只比较速度的话,那肯定是mem快,但他们各有优缺点。
文件缓存优点:
1、由于现在的硬盘都非常大,所有如果是大数据的时候,放硬盘里就比较合适,比如做一个cms网站,网站里有10万篇文章,生成的文件大小总数可能就会很大。
2、数据的存放较为安全,由于是硬盘存放,所以在意外掉电的情况下,缓存文件不会丢失。
3、易于扩展,如果硬盘不够用,可以更换大硬盘或者添加硬盘,在容量上受的限制很小。
文件缓存缺点:
1、高并发时,硬盘的读写性能大幅度降低。
2、网站pv持续很高的情况下,硬盘寿命大大降低。

memcached优点:
1、读写性能优异,特别是高并发时和文件缓存比有明显优势。
2、memcached组建支持集群,并且是自动管理负载均衡。
memcached缺点:
1、缓存空间有限:据说一台电脑的mem缓存开到2g以上会出现不稳定,数据无故丢失的现象。
2、掉电丢失数据:由于是把数据放在内存里的,所有一旦机器掉电,数据也就全部丢失了。

一般建议:如果是做内容缓存的话,比如把一些不经常更改的文章放在文件缓存里比较合适,而mem则适合放一些频繁更改的数据,比如可以把session数据放进mem。

文件缓存耗IO、过期时间自行控制、不费带宽、不易采用分布式。
cache缓存耗内存、过期时间由cache控制、稍占带宽、易采用分布式。

在实际项目应用中,可以联合使用memcache和文件类型缓存。根据热度来把最热的数据放在内存里面。然后把一般的数据放在文件缓存中。

读取数据时,可以按照 memcache=>file_cache=>databases
这样的递归来处理。最大程度的利用缓存来减轻数据库的查询压力。

另外session不能放在内存里面。可以用redis存储session.定时把内存数据刷新到硬盘。这样万一断电或者其他故障,不至于所有session都失效。

memcache 的使用场景是:当你有大量的数据 >2G 大小,而这些数据是 有可能被很频繁的读写时,memcache可以使用集群,不但跨进程,而且跨机器。

文件缓存,现在较少使用了。因为磁盘io的随机定位是10ms 左右,而且磁盘io太频繁的话,会拖慢整个服务器的处理性能。也没办法支持高并发。

现在的大部分的时候都是将计算和io区分开,可以保证各自的性能。计算可以放到数据库去做,比如查询 ,连表啊 啥的。
io就nosql吧 这样支持高并发好点。

http://zzstudy.offcn.com/archives/10009

PHP文件缓存与memcached缓存 相比 优缺点是什么呢【总结】的更多相关文章

  1. Nginx使用教程(八):使用Nginx缓存之Memcached缓存

    使用Memcache <br\>Memcache是一个通用的内存缓存系统. 它通常用于加速缓慢的数据访问. NGINXmemcached模块提供各种指令,可以配置为直接访问Memcache ...

  2. Memcached缓存入门篇

    Asp.Net中使用Couchbase——Memcached缓存入门篇 前言 本文的主要目的就是简单的进行使用Memcached.这是Memchahed的官网http://memcached.org/ ...

  3. Asp.Net中使用Couchbase——Memcached缓存使用篇

    Asp.Net中使用Couchbase——Memcached缓存使用篇 前言 在上一篇Asp.Net中使用Couchbase——Memcached缓存入门篇http://www.cnblogs.com ...

  4. 受教了,memcache比较全面点的介绍,受益匪浅,适用memcached的业务场景有哪些?memcached的cache机制是怎样的?在设计应用时,可以通过Memcached缓存那些内容?

    基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 ...

  5. 高性能的分布式内存对象缓存系统Memcached

    Memcached概述   什么是Memcached? 先看看下面几个概念: Memory:内存存储,不言而喻,速度快,对于内存的要求高,不指出的话所缓存的内容非持久化.对于CPU要求很低,所以常常采 ...

  6. MemCached缓存操作

    Web项目在运行时,通常需要从数据库中进行读写.随着操作数据量的增大,以及访问量的集中,数据库的负载增加,数据库响应变慢,网站访问速度变慢的情况.Memcached就是用来解决这些问题的. Memca ...

  7. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  8. 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)

    硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...

  9. 分布式缓存系统Memcached简介与实践

    缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵 ...

随机推荐

  1. uc_key getshell

    <?php $key = 'cebbvi5s15BSiMXteaP9TNCIz5K5jAVekw7tcV9TqmYCNT5VOJdu7toOxipTX';#uc_key 写在这里 $url = ...

  2. Scrum会议1

    小组名称:天天向上 项目名称:连连看 参会成员:王森(Master)张金生 张政 栾骄阳 时间:2016.10.16 会议内容: 1.连连看游戏选取图片素材. 2.连连看的界面设计 3.连连看具体的功 ...

  3. Tree Context Menu

    Right click on a node to display context menu.   My Documents Photos Program Files Intel Java Micros ...

  4. 每天学点GDB 12

    本文介绍在archlinux环境下,如何进行内核使用gdb配合qemu进行调试.   1. 安装qemu   2. 编译linux kernel 选择最新的内核版本,规避gcc编译出错的问题具体步骤如 ...

  5. laravel elixir

    npm install npm install jquery --save //bootsrap3.36 与 jquery3不兼容,下载jquery时可能需要确定版本号 npm install jqu ...

  6. IN()

    High Performance My SQL, Third Edition Consider the followingWHERE clause: WHERE eye_color IN('brown ...

  7. OpenGL 完全教程(写给Delphi的开发者) 前言

    前言 在开发了许多2D图形程序之后,许多人开始对3D图形编程产生了兴趣.学习一套3D API,是进行3D图形编程的基础.在有趣的3D图形编程中,3D API只不过充当着一种低级的工具而已.因此,在这里 ...

  8. 【故障处理】ORA-12162: TNS:net service name is incorrectly specified (转)

    本文将给大家阐述一个因未设置系统环境变量ORACLE_SID导致ORA-12162错误的案例.希望大家有所思考. 1.获得有关ORA-12162报错信息的通用表述信息 [oracle@asdlabdb ...

  9. 【Demo】HTML5 拍照上传

    本文主要讲解 手机浏览器 如何拍照 为什么会有这个需求 最近做一个项目要用到拍照然后上传照片,但是网页拍照一般都是用Flash做的,而我们主要是H5页面,如果在微信里面有权限就可以通过JSSDK调起摄 ...

  10. java JDK8 学习笔记——第15章 通用API

    第十五章 通用API 15.1 日志 15.1.1 日志API简介 1.java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可在标准Java平台使用是其好处.使用日 ...