個人基本資料:
Memcache定義 Memcache 是 danga.com 的一個開源項目,它是一個高效能的分布式的記憶體對象緩衝系統,通過在記憶體裡維護一個統一的巨大的 Hash 表 ,能夠用來儲存各種格式的資料。 目前全世界不少人使用這個快取項目來構建自己大負載的網站,來分擔資料庫的壓力。
它可以應對任意多個串連,使用非阻塞的網路 IO 。由於它的工作機制是在記憶體中開闢一塊空間,然後建立一個 HashTable , Memcached 自管理這些 HashTable 為什麼會有 Memcache 和 memcached 兩種名稱。
其實 Memcache 是這個項目的名稱,而 memcached 是它伺服器端的主程式檔案名稱,知道我的意思了把 ~~~~ 。一個是項目名稱,一個是主程式檔案名稱,在網上看到了很多人不明白,於是混用了。
1 、調用settings_init()設定初始化參數
2 、從啟動命令中讀取參數來設定setting值
3 、設定LIMIT 參數
4 、開始網路socket 監聽(如果非socketpath存在)( 1.2之後支援UDP方式)
5 、檢查使用者身份(Memcached不允許 root身份啟動)
6 、如果有socketpath存在,開啟 UNIX本地串連(Sock管道)
7 、如果以 -d 方式啟動,建立守護進程(如上調用daemon函數)
8 、初始化 item、event、狀態資訊、 hash、串連、slab
9 、如設定中managed 生效,建立bucket 數組
10 、檢查是否需要鎖定記憶體頁
11 、初始化訊號、串連、刪除隊列
12 、如果daemon 方式,處理進程ID
13 、event開始,啟動過程結束, main函數進入迴圈。 安裝 Memcache 的環境 安裝 memcache 需要以下兩個檔案
1> memcached-1.4.5.tar.gz
2> libevent-1.4.11-stable.tar.gz
說明:libevent是安裝memcached的唯一前提條件。它是memcached所依賴的非同步事件通知庫。您可以在monkey.org上找到關於libevent的源檔案
Memcached安裝 1. 分別把 memcached 和 libevent 下載回來,放到 / tmp 目錄下:
# cd/tmp
# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz
# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz 2. 先安裝 libevent :
#tar zxvflibevent-1.2.tar.gz
#cd libevent-1.2
#./configure –-prefix=/usr
#make
#make install 3. 測試 libevent 是否安裝成功
#ls -al/usr/lib|greplibevent
lrwxrwxrwx 1root root 2111?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1rootroot263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r–r–1 rootroot454156 11?? 12 17:38libevent.a
-rwxr-xr-x 1rootroot 81111?? 12 17:38 libevent.la
lrwxrwxrwx 1root root 2111?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3 4 . 安裝 memcached ,同時需要安裝中指定 libevent 的安裝位置 :
#cd /tmp
#tar zxvfmemcached-1.2.0.tar.gz
#cd memcached-1.2.0
#./configure –-with-libevent=/usr
#make
#make install 5. 測試是否成功安裝 memcached :
#ls -al/usr/local/bin/mem*
-rwxr-xr-x 1rootroot137986 11?? 12 17:39 /usr/local/bin/memcached
memcached的基本設定:
啟動 memcache 伺服器
# /usr/local/bin/memcached -d -m 100 -u root -l 192.168.204.30 -p12000 -c 64 -P /tmp/memcached.pid
參數說明:
-d選項是啟動一個守護進程,
-m是分配給Memcache使用的記憶體數量,單位是MB,我這裡是10MB,
-u是運行Memcache的使用者,我這裡是root,
-l是監聽的伺服器IP地址,如果有多個地址的話,我這裡指定了伺服器的IP地址192.168.204.30,
-p是設定Memcache監聽的連接埠,我這裡設定了12000,最好是1024以上的連接埠,
-c選項是最大啟動並執行並發串連數,預設是1024,我這裡設定了64,按照你伺服器的負載量來設定,
-P是設定儲存Memcache的pid檔案,我這裡是儲存在/tmp/memcached.pid
Memcache狀態說明
pid
memcache伺服器的進程ID
uptime
伺服器已經啟動並執行秒數
time
伺服器當前的unix時間戳記
version
memcache版本
pointer_size
當前作業系統的指標大小(32位系統一般是32bit)
rusage_user
進程的累計使用者時間
rusage_system
進程的累計系統時間
curr_items
伺服器當前儲存的items數量
total_items
從伺服器啟動以後儲存的items總數量
bytes
當前伺服器儲存items佔用的位元組數
curr_connections
當前開啟著的串連數
total_connections
從伺服器啟動以後曾經開啟過的串連數
connection_structures
伺服器分配的串連構造數
cmd_get
get命令(擷取)總請求次數
cmd_set
set命令(儲存)總請求次數
get_hits
總叫用次數
get_misses
總未叫用次數
evictions
為擷取空閑記憶體而刪除的items數(分配給memcache的空間用滿後需要刪除舊的items來得到空間分配給新的items)
bytes_read
總讀取位元組數(請求位元組數)
bytes_written
總發送位元組數(結果位元組數)
limit_maxbytes
分配給memcache的記憶體大小(位元組)
threads
當前線程數
查看啟動狀態:
本地cmd開啟命令視窗,telnet192.168.204.3012000串連到memcache,然後直接輸入stats就可以看到當前memcache的狀態了,狀態說明詳見備忘。
查看啟動狀態:
查看memcache進程號:psaux |grepmemcached 殺掉進程: kill -9 ‘ 進程號 ’ (或者 # kill `cat / tmp / memcached.pid ` ) 重新啟動: / usr /local/bin/ memcached -d -m 100 -u root -l 10.1.35.100 -p12000 -c 64 -P / tmp / memcached.pid 安裝 Memcache 的 PHP 擴充(不影響 mecache 測試) 1. 在 http://pecl.php.net/package/memcache 選擇相應想要下載的 memcache 版本。 2. 安裝 PHP 的 memcache 擴充 ( 需要安裝 PHP 詳見備忘 )
安裝php(從http://php.net/releases/index.php下載php-5.2.0.tar.bz2)
# cd /usr/local
# tar -jxvfphp-5.2.0.tar.bz2
# cd php-5.2.0
####./configure--prefix=[php安裝目錄] --with-config-file-path=[php安裝目錄] --with-apxs2=[apache安裝目錄]/bin/apxs###
#./configure --prefix=/usr/local/php--with-config-file-path=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs
#make
# make install
---------------------------------------------------------------------------------
mv/home/loveme23/apache_1.3.20.tar.gz /usr/local/
mv /home/loveme23/php-4.4.6.tar.gz /usr/local/
接下來解壓:
tar -zxvfphp-4.4.6.tar.gz
tar -zxvfapache_1.3.20.tar.gz
下來就比較重要了,先編譯安裝apache:
./configure--prefix=/usr/local/apache--enable-module=so
make;makeinstall
然後再編譯安裝php:
./configure--prefix=/usr/local/php--with-apxs=/usr/local/apache/bin/apxs--with-config-file-path=/usr/local/lib--with-php-config=/usr/local/php/bin/php-config
make;makeinstall
OK,現在已經完成50%了,下來就是修改httpd.conf和php.ini檔案了
首先我們用命令:
cp /usr/local/php-4.4.6/php.ini-dist /usr/local/lib/php.ini
vi /usr/local/lib/php.ini
修改下面的內容為On
register-golbals =On
然後修改httpd.conf檔案
vi /usr/local/apache/conf/httpd.conf
修改為下面的內容:
#將ServerAdminq3boy@younet.com一行改為您的郵箱地址#DocumentRoot"/home/httpd/html/"此處為html檔案主目錄
#同上
#OptionsFollowSymLinksMultiViews為安全起見,去掉"Indexes"
#
# DirectoryIndexdefault.phpdefault.phtml default.php3 default.html default.htm
#
#設定apache的預設檔案名稱次序(注意:以下兩部分不能注釋掉,否則無效)
AddTypeapplication/x-httpd-php .php .phtml.php3 .inc
AddTypeapplication/x-httpd-php-source.phps
#設定php檔案尾碼
OK!現在已經完成98%了,下面啟動apache服務
/usr/local/apache/bin/apachectlstart
自己製作一個test.php檔案放到主目錄中測試apache
<?
phpinfo();
?>
看到了吧。如果成功的話,會顯示你的phpinfo介面 tar vxzf memcache-2.2.3.tgz
cd memcache-2.2.3
/ usr /local/ php /bin/ phpize
./configure--prefix=/usr/local/php--with-apxs=/usr/local/apache/bin/apxs--with-config-file-path=/usr/local/lib--with-php-config=/