MemCache在php中的一些應用和使用方法的小測試

Memcache是一個高性能的分佈式的內存對象緩存系統,通過在內存裏維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,然後從內存中讀取,從而大大提高讀取速度。

Memcache的安裝
分爲兩個過程:memcache服務器端和memcached客戶端。
服務器端的安裝就是在服務器上安裝Memcache實現數據的存儲;客戶端的安裝就是指php(或者其他程序)去使用服務器端的Memcache提供的函數,需要php添加擴展。

服務器環境:Ubuntu13.04   X64
(一)Memcache服務端的安裝
Memcache用到了libevent這個庫用於Socket的處理,在安裝Memcache之前,我們必須先安裝libevent這個庫。

Libevent的功能:
Libevent提供了事件通知,io緩存事件,定時器,超時,異步解析dns,事件驅動的http server以及一個rpc框架。
事件通知:當文件描述符可讀可寫時將執行回調函數。
Io緩存:緩存事件提供了輸入輸出緩存,能自動的讀入和寫入,用戶不必直接操作io。
定時器:libevent提供了定時器的機制,能夠在一定的時間間隔之後調用回調函數。
異步的dns解析:libevent提供了異步解析dns服務器的dns解析函數集。
事件驅動的http服務器:libevent提供了一個簡單的,可集成到應用程序中的HTTP服務器。
RPC客戶端服務器框架:libevent爲創建RPC服務器和客戶端創建了一個RPC框架,能自動的封裝和解封數據結構。

在安裝前可以先確認下服務器安裝了沒有:ls /usr/lib | grep libevent
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
官網鏈接:http://libevent.org
目前最新版本的穩定版爲:libevent-2.0.21-stable
下載鏈接:http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
step1:安裝libevent
解壓:tar -zxvf libevent-2.0.21-stable.tar.gz 
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
安裝:
cd libevent-2.0.21-stable
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
./configure --prefix=/usr/lib
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
make
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
make install
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin

查看是否安裝成功:
ll /usr/lib | grep libevent
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin

step2:安裝Memcached
apt-get install memcached
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin

檢查是否安裝完成
ls -al /usr/local/bin/mem*
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin

step3:安裝Memcache的PHP擴展
sudo apt-get install php5-memcache
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
編輯memcache的配置文件
vim /etc/php5/conf.d/memcache.ini
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
添加以下代碼:
[memcache]
memcache.dbpath="/usr/local/bin/memcached"
memcache.maxreclevel=0
memcache.maxfiles=0
memcache.archivememlim=0
memcache.maxfilesize=0
memcache.maxratio=0
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin

可以在phpinfo()看見memcache的相關情況
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin

*************************************************華華麗的分割線************************************************
memcached的圖形界面監控
可以將memcache.php複製到web站點下的文件夾下。
例如:/var/www/html下。
裏面有一些配置文件需要修改的。。。
帳號和密碼
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
設置監控memcached的ip和端口號,根據自己的實際情況,如果要開啓有多個memcached服務的話,就要在這裏添加
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
。。。。。
我們這時候我們就可以直接通過訪問memcache.php來通過圖形界面來管理
http://localhost/memcache.php
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
memcache的使用。。。
可以寫個php文件簡單測試。
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('test', '測試下唄!恭喜你成功了', 0, 60);
$val = $mem->get('test');
echo $val;
這個時候,你在通過圖形界面的信息。。你會看見使用的情況是不是有變化了。。

關於memcache的開啓和關閉
關閉:/etc/init.d/memcached stop
MemCache在php中的一些應用和使用方法的小測試 - kaizhu_QIN - kaizhu_Qin
啓動:
/etc/init.d/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid
-d選項是啓動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,我這裏是10MB,默認是64MB,
-u是運行Memcache的用戶,我這裏是root,
-l是監聽的服務器IP地址,如果有多個地址的話,我這裏指定了服務器的IP地址192.168.0.200,
-p是設置Memcache監聽的端口,我這裏設置了12000,最好是1024以上的端口,
-c選項是最大運行的併發連接數,默認是1024,我這裏設置了256,按照你服務器的負載量來設定,
-P是設置保存Memcache的pid文件,我這裏是保存在 /tmp/memcached.pid。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章