php的memcache和memcached擴展區別


老生長談的問題了。我這里就整理一下。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM