`
hqman
  • 浏览: 361684 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Memcached不是万能的

阅读更多

      在很多时候,memcached都被滥用了,这当然少不了对它的抱怨。我经常在论坛上看见有人发贴,类似于"如何提高效率",回复是"用memcached",至于怎么用,用在哪里,用来干什么一句没有。memcached不是万能的,它也不是适用在所有场合。

    Memcached 是"分布式"的内存对象缓存系统,那么就是说,那些不需要"分布"的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来 任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源,即使是UNIX本地连接也一样。 在我之前的测试数据中显示,memcached本地读写速度要比直接PHP内存数组慢几十倍,而APC、共享内存方式都和直接数组差不多。可见,如果只是 本地级缓存,使用memcached是非常不划算的。

    Memcached在很多时候都是作为数据库前端 cache使用的。因为它比数据库少了很多SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能,在大 型系统中,访问同样的数据是很频繁的,memcached可以大大降低数据库压力,使系统执行效率提升。另外,memcached也经常作为服务器之间数 据共享的存储媒介,例如在SSO系统中保存系统单点登陆状态的数据就可以保存在memcached中,被多个应用共享。

   需要注意的是,memcached使用内存管理数据,所以它是易失的,当服务器重启,或者memcached进程中止,数据便会丢失,所以 memcached不能用来持久保存数据。很多人的错误理解,memcached的性能非常好,好到了内存和硬盘的对比程度,其实memcached使用 内存并不会得到成百上千的读写速度提高,它的实际瓶颈在于网络连接,它和使用磁盘的数据库系统相比,好处在于它本身非常"轻",因为没有过多的开销和直接 的读写方式,它可以轻松应付非常大的数据交换量,所以经常会出现两条千兆网络带宽都满负荷了,memcached进程本身并不占用多少CPU资源的情况。

分享到:
评论

相关推荐

    memcached安装包以及java所需的memcached架包

    **memcached** 是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高数据访问...但同时也要注意,memcached并非万能解决方案,对于需要持久化存储和复杂查询的数据,仍需依赖数据库。

    memcached 缓存图片

    Memcached是一种高性能、分布式内存对象缓存系统,用于在动态应用中减少数据库负载...但需要注意的是,Memcached并非万能解决方案,对于需要长期存储或频繁更新的数据,可能需要结合其他存储策略,如数据库或文件系统。

    PHP万能采集网站源码.zip

    10. **性能优化**:对于大规模数据采集,可能涉及到了缓存策略(如Memcached或Redis)、负载均衡、数据库索引优化等技术,以提升系统的运行效率。 总的来说,PHP万能采集网站源码是一个综合性的Web应用,结合了PHP...

    memcache 万能

    **标题:“memcache 万能”** 在IT领域,Memcache是一个广泛使用的高性能、分布式内存对象缓存系统,主要用于减少数据库负载,提升Web应用的性能。"memcache 万能"可能指的是经过优化或修改的版本,使得它能在各种...

    开奖器 php万能代码

    6. **性能优化**:对于高并发场景,需要考虑性能优化,比如缓存机制(如Redis或Memcached)、队列服务(如RabbitMQ或Beanstalkd)以及负载均衡等。 7. **API设计**:如果开奖器是作为服务供其他应用调用,那么API...

    PHP实例开发源码—万能镜像系统程序.zip

    这可能涉及缓存策略(如使用APC或Memcached)、数据库索引优化、代码重构等。 7. **安全措施**:防止SQL注入、XSS攻击等网络安全威胁是必须的。PHP的预处理语句、过滤输入和输出验证等方法可以增强系统的安全性。 ...

    PHP实例开发源码-DZ php论坛万能程序.zip

    7. **缓存技术**:为了提高性能,DZ论坛可能采用了内存缓存(如APC, Memcached或Redis)或文件缓存。掌握PHP中的缓存机制,可以有效减少数据库访问,提高系统响应速度。 8. **插件与模块扩展**:DZ论坛支持插件和...

    选redis还是memcache

    然而,需要注意的是,Redis的持久化功能并不是万能的——定期快照无法完全避免数据丢失,而AOF虽然可以提高数据安全性,但可能会牺牲一定的性能,并且不适合存储大量数据。 3. **缓存场景下的数据一致性**:在仅...

    基于PHP的xms全能发布系统(万能资源内容下载系统)源码.zip

    【标题】"基于PHP的xms全能发布系统(万能资源内容下载系统)源码.zip" 描述了一个采用PHP编程语言开发的全方位内容发布系统,主要用于资源的上传、管理和下载功能。这个系统的设计旨在适应各种类型的内容管理需求,...

    千脑cms万能获取系统gbk版 v1.32

    同时,它可能还利用了缓存机制(如Memcached或Redis)提高数据处理速度,以及任务队列(如RabbitMQ或Beanstalkd)实现异步处理。 5. 安全性: 在处理数据采集过程中,系统需要防范SQL注入、XSS攻击等安全威胁。PHP...

    全能服务器winginx-setup

    php,js.jsp都能用的万能服务器,Winginx是一款可以帮你快速安装Nginx环境到Windows系统上的应用软件,支持PHP5、Node.js、MySql、MongoDB、Redis、Memcached、CMS and frameworks,程序无需安装,解压即可使用。

    .net下缓存项操作

    - **避免过度依赖缓存**:缓存不是万能的,要权衡其带来的性能提升与维护复杂性。 - **使用缓存分层**:可以结合内存缓存和分布式缓存,如Redis或Memcached,提高可扩展性。 6. **C#代码示例** ```csharp // ...

    Ruby on Rails开发的五点建议

    使用数据库缓存服务器,如Redis或Memcached,将经常访问的数据存储在内存中,减少对数据库的直接访问。理解HTTP协议的缓存机制,如ETag和Last-Modified,以减轻整个堆栈的负担。 4. **监控与测量**:持续监控服务器...

    php课程(共100多节)

    80:ADODB PHP 数据库万能引擎类(上) 81:ADODB PHP 数据库万能引擎类(下) 82:PHP开发通用采集入库程序 83:PHP开发通用采集入库程序二 84:PHP开发通用采集入库程序三 85:PHP 图表类 JPGraph 入门配置与应用 ...

    .NET系统缓存简介

    .NET系统缓存简介 在软件开发中,性能优化是一个至关重要的环节,而系统缓存是提升应用程序...然而,缓存并非万能,过度依赖缓存可能会带来额外的复杂性和维护成本,因此在实际应用中,应根据具体场景和需求谨慎采用。

    什么是NoSQL数据库?

    1. **键值存储**:如memcached、Tokyo Tyrant等,以键值对形式存储数据,提供快速访问,适合缓存处理。 2. **文档型数据库**:如MongoDB、CouchDB,允许灵活的文档结构,便于处理JSON等非结构化数据。 3. **列存储...

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程80:ADODB PHP 数据库万能引擎类(上) PHP100视频教程81:ADODB PHP 数据库万能引擎类(下) PHP100视频教程82: PHP开发通用采集入库程序 PHP100视频教程83: PHP开发通用采集入库程序二 PHP100...

    WEB网站千万级访问架构演变之路

    ##### 2.1 架构原始阶段:万能的单机 在网站初期阶段,由于访问量相对较小,可以使用单一服务器来承担所有服务,包括Web应用、数据库以及静态资源等。通过合理的配置和调优,单机模式可以支撑从几万PV到数十万PV的...

    MySQL 通过索引优化含ORDER BY的语句

    MySQL数据库的索引优化是提升查询性能的关键环节,尤其是在处理包含`ORDER BY`子句的语句时。...记得索引不是万能的,有时数据表设计的优化,如适当的数据归档,或者采用缓存系统如memcached,也能显著提升性能。

    精通php的十大要点(上)

    然而,PHP并非万能的解决方案。理解这一点至关重要。开发者应根据项目需求选择最适合的工具,不应一味依赖PHP。有时,其他语言或技术可能更适合特定场景。 2. **使用多表存储提高可扩展性 - Matt Mullenweg** Matt...

Global site tag (gtag.js) - Google Analytics