memcache和memcached之間的區別和聯繫

轉自:http://www.cnblogs.com/hayley/archive/2011/01/25/1944577.html


由於在項目後期會引入緩存策略對角色的數據進行緩存,而現在我們大部分緩存都使用文件緩存,開發過網頁遊戲的朋友們大都知道,語言包和遊戲相關的數據大部分不經常改動,有時候幾個星期不需要更新,只是在進行版本更新的時候才重新生成一次數據緩存,而角色的數據和數值時刻在變化着,會頻繁的更新和操作,採用文件緩存會頻繁地進行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 會讓人放心很多:http://code.google.com/p/memcached/wiki/PHPClientComparison

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

 

參考:http://muxi.me/php-tech/memcache-memcached.html

發佈了19 篇原創文章 · 獲贊 7 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章