老生長談的問題了。我這里就整理一下。
memcache的文檔在:http://pecl.php.net/package/memcache
memcached的文檔在:http://pecl.php.net/package/memcached
首先看下時間,memcache最早是在2004年2月開發的,最后更新是在2013年4月,而memcached最早是在2009年1月開發的,最后更新是在2014年1月更新的。所以memcache的歷史比memcached早。
在安裝memcache擴展的時候並不要求安裝其他東東,但是在安裝memcached的時候會要求你安裝libmemcached,問題來了,libmemcached是memcache的C客戶端,它具有的優點是低內存,線程安全等特點。比如新浪微博之前就全面將php的memcache替換成php的memcached,在高並發下,穩定性果斷提高。
memcache的方法列表在:http://cn2.php.net/memcache
memcached的方法列表在:http://www.php.net/manual/zh/book.memcached.php
memcache的方法特別少,比如getMulti,setMulti都是沒有的,基本就剩下最簡單的get和set了。所以說“memcached比memcache支持更多的memcache協議”。
然后memcached直接配置了session支持,只要稍微修改下配置文件就可以把session存儲在memcache中了。
看到下面很多人評論說這個文章沒有用,先略去.可以不看.
寫這個的時候是2011年,轉眼3年過去了. 很多人看了文章之后,進行了評論,批評了我也傷害了我了,寫文章分享,也有誤導,但是不同的人看的效果盡然是不同的.
所以這個文章先略去先. 我在在這里強調下以下:
其實關於這2個的區別
首先, 這篇文章講的是 php客戶端上的 2個 memcached 客戶端的區別. 而且現在主要用的都是 Memcached的客戶端擴展.
兩個不同版本的php的memcached的客戶端
new memcache是pecl擴展庫版本
new memcached是libmemcached版本
第二, 對於過時的東西,總是會被新東西替代的, 為什么不用新的東西呢?
這篇文章寫的很清楚,程序的原理先理解了,糾結於這個東西叫什么名字有什么意義呢? 首先得理解原理吧!
先去看看wiki吧
https://code.google.com/p/memcached/wiki/NewStart
http://www.php.net/manual/en/book.memcached.php
http://www.php.net/manual/en/book.memcache.php
還有說明的是,哥3年前也是小白..............有這么說小白的么? 小白說小白.......嗨......
------------------------------------------------- 分割線 -------------------------------------------------------------------------------
用了段時間的memcache和memcached總結下認識,看很多人在用cache的時候,剛剛都沒有搞清楚memcache和 memcached的區別,還有就是使用的時候基本都是 get/set 用了memcached之后其實可以發現getMulti/setMulti 是多么好用,這篇寫個那些剛剛使用memcache緩存的新人,老鳥請略過。
關於memcached就不用多說了,就是a distributed memory object caching system 。既然是一個用來存東西的系統,那么一定要有個存放的地方吧,我們就叫它服務器端吧,然后誰把東西存放在上面就叫它客戶端吧,那怎么放呢,肯定是 客戶端 -- 連接服務器端 -- 把東西發送給服務器端 -- 實現了東西的存放么,要去取的時候也是一樣的,先連接,在取東西回來了。所有就有了memcached的服務器端,安裝請見 http://www.cnblogs.com/scotoma/archive/2010/05/27/1745011.html 這個是WIN下的,*unix下的請到 http://memcached.org/ 去下載然后編譯安裝了,這里我就不多說安裝的配置了,網上已經有很多了。
安裝完成后看下自己的進程里面memcached的服務是否在跑着的? 好了進程在跑着呢,那就看看客戶端吧
我是做PHP開發的,所有就安裝了PHP的客戶端擴展,有memcache和memcached擴展2種,安裝我也不說了自己去動手,安裝完成后查看phpinfo會發現如下頁面就說明你的擴展安裝成功了,如果不成功請自己檢查php.ini里面的配置是否正確
服務器端和客戶端都弄好了看看示例代碼可以跑起來的么,如圖
結果如圖:
都跑起來了,看看memcache和memcached的使用的區別,那就好好的翻看下PHP手冊吧,其實手冊是最好的東西了
memcache擴展的方法
memcached擴展的方法
完成了,其實2個可以理解成2個擴展歷史原因也不想多說了,就是盡量使用memcached就好了,不過也會出現一些很奇怪的Bug,比如使用memcached擴展的適合設置的session(session存放到memcached中,使用的是memcached擴展存放的就會發現不會過期)。
在實踐中用了之后才會知道什么和什么的,動手是最好的學習方式.
參考文章:
http://www.ttlsa.com/memcache/memcache-and-memcached-php-php-and-problems/
http://www.cnblogs.com/scotoma/archive/2011/02/15/1955573.html