Linux下編譯按裝memcache分佈式環境(

Linux下編譯按裝memcache分佈式環境(筆記)

Linux下編譯按裝memcache分佈式環境(筆記)
@author 流水孟春 121169238(at)qq.com

Memcache用到了libevent這個庫用於Socket的處理,因此還須要安裝libevent(若是你的系統已經安裝了libevent,能夠不用安裝)


memcached: http://www.danga.com/memcached/
libevent: 到chinaunix.net搜索下載
memcache : http://pecl.php.net/package/memcache


1) 先安裝libevent:

# tar zxvf libevent-x.x.tar.gz
# cd libevent-x.x
# ./configure --prefix=/usr
# make 
# make install

2) 安裝memcached
# tar zxvf memcached-memcached-1.2.3.tar.gz
# cd memcached-memcached-1.2.3
# ./configure --prefix=/usr/local --with-libevent=/usr
# make
# make install

啓動memcached 
# /usr/local/bin/memcached -d -m 2048 -l 172.18.19.250 -p 11211 -u system_u

-d選項是啓動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,
-u是運行Memcache的用戶,我這裏是system_u,
-l是監聽的服務器IP地址,若是有多個地址的話,能夠用多個 -l YOU_IP
-p是設置Memcache監聽的端口,最好是1024以上的端口,
-c選項是最大運行的併發鏈接數,默認是1024,按照你服務器的負載量來設定,
-P是設置保存Memcache的pid文件

若是要結束Memcache進程,執行:
用# ps -e 查看進程 
# kill pid memcached的進程號
運行後有些系統還會提示-bash: kill: pid: arguments must be process or job IDs
,可是用# ps -e查看進程,已經沒有memcached的進程了。

3) 客戶端
# tar zxvf memcache-2.1.0.tgz
# cd memcache-2.1.0
# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# make
# make install

須要在php.ini(vi /etc/php.ini)文件中相應的位置加入:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20060613/"
extension=memcache.so

啓動memcached
重啓apache
用手冊中的例子拿來測試


<下面copy http://blog.csdn.net/chinalinuxzend/archive/2007/10/06/1812591.aspx>
應用:

1.分佈式共享數據
《實現基於Memcache存儲的Session類》這篇文章是模擬了php對session管理的方法,用setcookie模擬PHPSESS ID,用memcache存儲數據。
http://blog.csdn.net/heiyeshuwu/archive/2006/12/24/1457206.aspx
http://wf.xplore.cn/read.php/91.htm

下面這篇文章是利用了session_set_save_handler方法,重寫open,write,read,close,destory,gc方法,將session數據存儲在memcache。
《PHP實現多服務器session共享之memcache共享》
http://imysql.cn/?q=node/215


總結:都是基於Cookie確認的。只能在同域名下共享session。第二篇文章使用起來更方便。用戶只要正常使用php 的session管理函數就好了。

2.數據庫檢索結果的緩存
Memcached在大型網站中應用 [原創]
http://tomore.myoow.com/showlog351.html

優勢和缺點: memcached部分實現的是內存空間分配和回收,以及存儲服務監聽和提供.對於分佈式的實現,取決於客戶端的使用和構造.咱們使用的客戶端是徹底支持分佈式的.只是可能會出現某些問題. 諸如一旦出現網絡問題, 網絡問題致使某個分佈式服務器中的一臺失去聯繫以後,到這臺機器恢復正常工做的這段時間內, 寫入分佈式服務器的數據將基本不能夠獲取. 能夠經過採用分佈式hash表的方式解決這個問題.
相關文章
相關標籤/搜索