zoukankan      html  css  js  c++  java
  • (转)PHP文件缓存与memcached缓存 相比 优缺点是什么呢【总结】

    本文链接:https://blog.csdn.net/u011852589/article/details/11713073
    如果不考虑其他任何问题,只比较速度的话,那肯定是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吧 这样支持高并发好点。
    ————————————————
    版权声明:本文为CSDN博主「武燕铭」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/xiaowuc/article/details/11713073

  • 相关阅读:
    查看 lib 库信息
    评委打分(C++ 容器综合练习)
    二阶段12.16
    对搜狗输入法的使用心得
    二阶段12.14
    二阶段12.13
    二阶段12.12
    典型用户描述
    水王(课堂练习)
    一阶段11.21
  • 原文地址:https://www.cnblogs.com/sz-xioabai/p/11587149.html
Copyright © 2011-2022 走看看