Memcached 知識整理

關於Redis與Memcached的區別可以看看這篇文章。
http://blog.csdn.net/tonysz126/article/details/8280696/
多數情況下Redis具備更優秀的功能,但是memcached的併發能力應該更強,而且分佈式部署的速度會快些。Redis自身不具備分佈式部署的能力的,不過聽聞新版本是開始往這方面努力了。

關於Memcached和Memcache的區別,也請找找文章閱讀閱讀。
memcache是pecl擴展庫版本
memcached是libmemcached版本
我理解是起錯名字了,很容易跟memcached服務混淆,反正是起錯名字了。

關於Memcached的詳細介紹,這篇文章不錯:http://kb.cnblogs.com/page/42731/ ,裏面介紹了分佈式客戶端的內部邏輯,對理解所謂的分佈式很有幫助。
不管對錯,項目裏面已經用了Memcached了,所以整理下開發環境的安裝過程。

Windows安裝

下載地址是
- 先下載memcached-win32啓動軟件,如果下載不了就百度找找
http://down2.121down.com:8181/soft/memcached-1.4.20.rar
G:\***\memcached-win64-1.4.4-14\memcached\memcached.exe -d install (安裝)
G:\***\memcached-win64-1.4.4-14\memcached\memcached.exe -d start (啓動)
看一看進程裏面有沒有memcached進程,有則啓動成功。

如果在沒有安裝過的情況下,出現”failed to install service or service already installed”錯誤,可能是cmd.exe需要用管理員身份運行。

這樣安裝將會在系統每次啓動的時候都需要啓動一次,不過是開發環境,所以這樣就夠了,如果正式環境就最好是發啓動發佈爲服務。
如果要配置爲服務,可以參考這裏來配置:http://www.jb51.net/article/30334.htm

注意,memcached是進程的名稱,是服務端的叫法,跟客戶端memcached和memcache是沒有關係的,客戶端的memcached和memcache是不一樣的,因爲兩者基於的lib不一樣,從而提供了不同的功能、性能。

PHP中配置 Memcach Client端

1、下載: php_memcache.dll 組件,可以下載這個

2、複製 php_memcache.dll 到指定的組件目錄, 默認在 php\ext\
3、在PHP.ini 加入一句話: extension=php_memcache.dll
4、重啓WEB服務,使用 phpinfo() 函數查看啓用情況 如果有memcache,那麼就說明安裝成功!

驗證代碼

<?php
$memcache = new Memcache();  //windows
$memcache->connect('127.0.0.1', 11211 ) or die ( "Could not connect Memcached server!" );  
$memcache->set( 'Memcache', "hello Memcache!<br/>");
echo $memcache->get('Memcache');
?>

window下搞這個配置還幾麻煩的,其中dll文件就已經難找,在官網上都不知道哪裏可以去得到。

嚴格來說,memcached客戶端在window下是沒法配置的,因爲window的lib沒有人編譯有現成的,不過可以使用client來處理,這篇文章可以幫忙。
http://hudeyong926.iteye.com/blog/887754

關於Memcached的一些關鍵內容:
1、分佈式實現方案:利用Hash 或者 一致性Hash 方法來存放和查找Key-Value。服務器間不通訊。考慮好數據分佈的均勻性。
2、存儲不能大於1M的數據。(受限於Slab內存分配算法)
3、多路複用I/O模型,+ 多線程模型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章