目錄
您可能感兴趣的文章
首頁 後端開發 php教程 memcached是什么?memcache该何使用?_PHP教程

memcached是什么?memcache该何使用?_PHP教程

Jul 13, 2016 am 10:31 AM
memcached

Memcached是什么?

Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。很多人都把它当作和SharedMemory那种形式的存储载体来使用,虽然memcached使用了同样的“Key=>Value”方式组织数据,但是它和共享内存、APC等本地缓存有非常大的区别。Memcached是分布式的,也就是说它不是本地的。它基于网络连接(当然它也可以使用localhost)方式完成服务,它本身是一个独立于应用的程序或守护进程(Daemon方式)。

Memcached使用libevent库实现网络连接服务,理论上可以处理无限多的连接,但是它和Apache不同,它更多的时候是面向稳定的持续连接的,所以它实际的并发能力是有限制的。在保守情况下memcached的最大同时连接数为200,这和 Linux 线程能力有关系,这个数值是可以调整的。关于libevent可以参考相关文档。

Memcached内存使用方式也和APC不同。APC是基于共享内存和MMAP的,memcachd有自己的内存分配算法和管理方式,它和共享内存没有关系,也没有共享内存的限制,通常情况下,每个memcached进程可以管理2GB的内存空间,如果需要更多的空间,可以增加进程数。

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资源的情况。

您可能感兴趣的文章

  • PHP报Fatal error Allowed memory size of...内存不足的错误应该如何解决
  • windows下memcache的安装与配置教程
  • body 是什么意思">css中 html > body 是什么意思
  • php计算当前是一年或一月中第几周的函数
  • MySQL replace函数替换字符串语句的用法
  • 关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比
  • Mysql 数据库缓存cache功能分析,调试以及性能总结
  • PHP 字符串转义函数(addslashes,stripslashes)详解

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/764126.htmlTechArticleMemcached是什么? Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24
Memcached快取技術對於PHP中的Session處理的最佳化 Memcached快取技術對於PHP中的Session處理的最佳化 May 16, 2023 am 08:41 AM

Memcached是一種常用的快取技術,它可以讓Web應用程式的效能得到很大的提升。在PHP中,常用的Session處理方式是將Session檔案存放在伺服器的硬碟上。但是,這種方式並不是最優的,因為伺服器的硬碟會成為效能瓶頸之一。而使用Memcached快取技術可以對PHP中的Session處理進行最佳化,提升Web應用程式的效能。 PHP中的Session處

PHP8.0中的快取庫:Memcached PHP8.0中的快取庫:Memcached May 14, 2023 am 08:16 AM

PHP8.0中的快取庫:Memcached隨著網路的快速發展,現代應用程式需要高效可靠的快取技術來提高效能和處理大量資料。由於PHP的流行和開源特性,PHP快取庫已經成為了Web開發社群的必備工具。 Memcached是一種廣泛使用的開源高速記憶體快取系統,它能處理數百萬個同時連接的快取請求,可以用於許多不同類型的應用程序,例如社交網路、在線

如何使用Memcached快取技術優化PHP應用程式CPU的使用率? 如何使用Memcached快取技術優化PHP應用程式CPU的使用率? Jun 21, 2023 pm 05:07 PM

隨著互聯網的發展,PHP應用程式在網路應用領域中變得越來越常見。但是,PHP應用程式的高並發存取會導致伺服器的CPU使用率高,進而影響應用程式的效能。為了優化PHP應用程式的效能,Memcached快取技術成為了一個很好的選擇。本文將介紹如何使用Memcached快取技術最佳化PHP應用程式CPU的使用率。 Memcached快取技術簡介Memcached是一

PHP與Memcached資料庫備份與恢復 PHP與Memcached資料庫備份與恢復 May 15, 2023 pm 09:12 PM

隨著網路的快速發展,大規模MySQL資料庫備份和復原成為各大企業和網站必備的技能之一。而隨著Memcached的廣泛應用,如何備份和還原Memcached也成為了一個重要的問題。 PHP作為Web開發的主力語言之一,在處理備份和復原MySQL和Memcached上擁有獨特的優勢和技巧。本文將詳細介紹PHP處理MySQL與Memcached備份與復原的實作方法

PHP與Memcached效能監控 PHP與Memcached效能監控 May 15, 2023 pm 09:51 PM

隨著現代網路應用的快速發展,使用者體驗對於一個應用程式的成功至關重要。如何確保應用程式的高效能和高可用性,成為了開發人員需要解決的重要問題之一。 PHP作為一種廣泛應用的程式語言之一,它的效能監控和最佳化也是非常重要的。 Memcached是一個高效能、分散式的記憶體物件快取系統,可以幫助應用程式提高效能和擴充性。本文將介紹如何使用PHP和Memcached實現效能監控的方法。

使用PHP和Memcached進行快取管理 使用PHP和Memcached進行快取管理 May 23, 2023 pm 02:21 PM

隨著網路應用的不斷增加和資料量的不斷膨脹,資料的讀寫效率成為影響應用效能的重要因素之一。而快取技術的應用則可以很好地解決這個問題。在PHP應用程式中,Memcached是最常用的快取伺服器。 Memcached是一個高效能的分散式記憶體物件快取系統,可以將常用的資料儲存在記憶體中,提高資料檢索的效率。本文將介紹如何使用PHP和Memcached進行快取管理,以及如何優

如何在CakePHP中使用Memcached? 如何在CakePHP中使用Memcached? Jun 04, 2023 am 08:14 AM

隨著現代應用程式的快速成長,快取已成為許多開發人員的至關重要的部分。快取可以大大提高應用程式的效能並減少伺服器負載。在CakePHP中,實作快取的一種方法是使用Memcached。 Memcached是一個基於記憶體的分散式快取系統。它將資料儲存在記憶體中,可以快速地讀取和寫入資料。在多伺服器環境中,Memcached可以分散式儲存資料並透過網路進行共用。不僅可以

利用Memcached快取技術對於PHP中的影音播放進行最佳化 利用Memcached快取技術對於PHP中的影音播放進行最佳化 May 17, 2023 pm 04:01 PM

隨著網路技術的不斷發展,影音資源已成為了網路上非常重要的內容形式,而PHP作為網路開發中使用最廣泛的語言之一,也不斷地應用於視訊和音訊播放領域。然而,隨著影音網站的用戶日益增加,許多網站已經發現了一個問題:在高並發的情況下,PHP對於影音的處理速度明顯變緩,會導致無法及時播放或播放卡頓等問題。為了解決這個問題,Memcached快取技術應

See all articles