說來慚愧,從事PHP已經1年多了,但是很多PHP相關的知識都不知道。
前一陣子看到網上流傳了很久的面試題,才了解到原來還有memcache這么個東西-_-。
memcache 具體是什么Google一下就好了,需要說明的是有些文章誤人子弟、混淆視聽。所以還是說一下:
- memcache是比較流行的cache解決方案,是高效、快速的分布式內存對象緩存系統,主要用於加速 WEB 動態應用程序
- memcached是運行在緩存服務器上的服務端程序名。
- memcache是memcache server的client端,有各種語言的版本,如:java、python、php等。(本文講述php_memcache.dll的php模塊安裝方式。)
- memcache不是必須和apache安裝在同一台服務器,可以把memcache server看成是DB服務器,一台可以供多台使用;和apache安裝在一起可以使資源充分使用,apache占用CPU多,內存相對較少,而memcache占用CPU低,內存多。
看到Memcached server這么好,想研究Memcache,於是就嘗試這在自己的本本上搭建Memcached的開發調試環境,特此記錄下自己安裝的過程。
Memcache的安裝分為兩大塊:
- memcache服務器端安裝
- memcache客戶端安裝
所謂服務器端的安裝就是在服務器(一般都是linux系統)上安裝Memcache實現數據的存儲
所謂客戶端的安裝就是指為php添加擴展,如PHP_memcache.dll,apache啟動后使用服務器端的Memcache提供的函數。
Memcached Server的安裝
- 首先,去memcached-win32下載最新的穩定版。我下載的是memcached 1.2.4 beta for Win32 binaries這個版本。
- 下載以后復制到通常安裝程序的地方,我這里是e:\program files\memcached,復制好以后執行以下命令:
由於我的本本是windows 7操作系統,所以和vista系統一樣,執行命令行前需要在命令提示行點右鍵,選擇“以管理員身份運行”
PHP | | copy code | | ? |
1 | cd E:\Program Files\memcached |
2 | e: |
3 | memcached -u administator -d install |
4 | net start "memcached server" |
一般來講,服務器就算安裝完成了,以后每次開機都會自動啟動Memcached Server。
Memcache的安裝
從http://downloads.php.net/pierre/選擇適當版本的php_memcache,有線程安全和非線程安全兩個版本,我的PHP是5.3.x,所以我下載的是http://downloads.php.net/pierre/php_memcache-2.2.6-5.3-vc9-x86.zip
下載后復制到PHP的ext目錄,然后在系統正在使用中的php.ini中添加一行
PHP | | copy code | | ? |
1 | extension=php_memcache.dl |
重啟apache,執行phpinfo();看到memcache模塊就算安裝成功了。
寫個代碼測試下:
PHP | | copy code | | ? |
1 | $mem = new Memcache; |
2 | $mem->connect("localhost", 11211); |
3 | $mem->set('key', 'value', 0, 60); |
4 | $val = $mem->get('key'); |
5 | echo $val; |