memcache和memcached之間的區別和聯繫

  memcache和memcached區別:php

  Memcache是什麼?
Memcache是一個自由和開放源代碼、高性能、分配的內存對象緩存系統。用於加速動態web應用程序,減輕數據庫負載。它能夠應對任意多個鏈接,使用 非阻塞的網絡IO。因爲它的工做機制是在內存中開闢一塊空間,而後創建一個Hash表,Memcached自管理這些Hash表。Memcache官方網站:http://memcached.org/web

  Memcached又是什麼?
Memcache是該系統的項目名稱,Memcached是該系統的主程序文件(字母d能夠理解爲daemon),以守護程序方式運行於一個或多個服務器中,隨時接受客戶端的鏈接操做,使用共享內存存取數據。數據庫

  memcache客戶端(php)
  PHP有兩個memcache客戶端:php memcache和php memcached。
  php memcache獨立用php實現,是老客戶端,從咱們實踐中已發現有多個問題,並且功能少,屬性也可設置的少;
  memcache的下載地址:http://pecl.php.net/package/memcache
  php memcached是基於原生的c的libmemcached的擴展,更加完善,建議替換爲php memcached。
  memcached的下載地址:http://pecl.php.net/package/memcached緩存

 

  因爲在項目後期會引入緩存策略對角色的數據進行緩存,而如今咱們大部分緩存都使用文件緩存,開發過網頁遊戲的朋友們大都知道,語言包和遊戲相關的數 據大部分不常常改動,有時候幾個星期不須要更新,只是在進行版本更新的時候才從新生成一次數據緩存,而角色的數據和數值時刻在變化着,會頻繁的更新和操 做,採用文件緩存會頻繁地進行I/O操做,在這個功能上文件緩存就不太適合了,因此對於角色的數據採起內存緩存策略在這裏就比較合適。

  對於內存緩存,比較經常使用的有兩種memcache和memcached擴展。而memcached和memcache的守護進程memcached同名, 比較容易引發混淆,甚至提到memcached,有些人第一想到的是後臺的守護進程,這裏仍是有必要分析一下二者之間的區別,如下觀點僅是我的觀點,但願 朋友進行補充和更正。
首先咱們能夠從php官方手冊上能夠清晰的看到二者的區別:
memcache:http://cn2.php.net/manual/en/book.memcache.php
memcached:http://cn2.php.net/manual/en/book.memcached.php
服務器

memcache是徹底在PHP框架內開發的,memecached是使用libmemcached的。從手冊上看,memcached 會比 memcache 多幾個方法,使用方式上都差很少。網絡

memcache是原生實現的,可是使用libmemcached的memached只支持OO接口,而 memcache則是OO和非OO兩套接口並存,之後隨着memcached服務器端的改進,這個lib也一定會立刻跟進的。而memcache卻不必定 能作到按時跟進。框架

memcached,還有個很是稱讚的地方,就是flag不是在操做的時候設置了。而是有一個統一的setOption()。memcached 實現了更多的 memcached 協議(畢竟是基於 libmemcached 庫的)。memcached

這裏有另一個對比表,很明顯,用 memcached 會讓人放心不少:http://code.google.com/p/memcached/wiki/PHPClientComparison性能

差異比較大的一點是,memcached 支持 Binary Protocol,而 memcache 不支持,意味着 memcached 會有更高的性能。不過,還須要注意的是,memcached 目前還不支持長鏈接。網站

 

參考文檔:   http://wenku.baidu.com/link?url=u5fGrzU3lfcO6p0FbkLjwdGlYIQEa8QanrFKwFZJZQu1zv7Z_gpl2P0Rr4hjBqHfz0dHi65y-JusSGGG9UYN-MfpIn86fo8ZTApmkOta6m7

      http://blog.csdn.net/lein_wang/article/details/52756859

相關文章
相關標籤/搜索