Memcache學習總結1-Memcache與Memcached介紹及安裝配置
阿新 • • 發佈:2019-01-28
也許大家一看到Memcache和Memcached會有點暈,這兩者有什麼關係又有什麼區別呢,下面先給大家說下Memcached,Memcached是一個高效能的分散式記憶體物件快取系統,用於動態Web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提高動態、資料庫驅動網站的速度。
想必大家也聽說過Memcached,就是一個快取系統,我們可以把一些經常要查詢的資料放到快取中,避免每次要使用的時候都去查詢資料庫。這樣既能大幅的加快資料讀取速度,而且也降低了伺服器的壓力,所以一般大訪問量的網站都會用的Memcached。
所以我們要使用Memcached,首先在服務端安裝好Memcached,並執行Memcached,然後安裝Memcache就能使用了。
在這裡我們會詳細的講解在Linux下安裝Memcached服務端,並講解通過PHP擴充套件安裝Memcache,以便我們直接通過PHP來測試Memcached。
由於Memcache用到了libevent這個庫用於Socket的處理,所以還需要安裝libevent,我們先把這兩個軟體都下載下來
好了,以上就把memcached安裝成功了
2.安裝PHP的memcache擴充套件
3.上述安裝完後會有類似這樣的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/
4.把php.ini中的extension_dir = "./"修改為
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
5.新增一行來載入memcache擴充套件:extension=memcache.so
6、修改未配置後重啟PHP
到這裡我們已經把Memcache的服務端和客戶端都安裝好了,下面我們來通過PHP做一個簡單地測試
首先我們得在服務端啟動已經安裝好的Memcached
/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
引數說明:
-d選項是啟動一個守護程序,
-m是分配給Memcache使用的記憶體數量,單位是MB,我這裡是10MB,
-u是執行Memcache的使用者,我這裡是root,
-l是監聽的伺服器IP地址,如果有多個地址的話,我這裡指定了伺服器的IP地址192.168.0.200,
-p是設定Memcache監聽的埠,我這裡設定了12000,最好是1024以上的埠,
-c選項是最大執行的併發連線數,預設是1024,我這裡設定了256,按照你伺服器的負載量來設定,
-P是設定儲存Memcache的pid檔案,我這裡是儲存在 /tmp/memcached.pid,
然後編寫PHP測試:
想必大家也聽說過Memcached,就是一個快取系統,我們可以把一些經常要查詢的資料放到快取中,避免每次要使用的時候都去查詢資料庫。這樣既能大幅的加快資料讀取速度,而且也降低了伺服器的壓力,所以一般大訪問量的網站都會用的Memcached。
Memcached與Memcache的區別
至於Memcached和Memcache的區別,其實很簡單,一個是服務端,一個是客戶端,就像mysql一樣,我們在命令列裡輸入各種sql語句就能查詢到需要的結果,這就是客戶端,客戶端接收我們輸入的命令從服務端查詢,mysqld就是服務端,就是響應客戶端的額後臺程序,在這裡也一樣Memcached是服務端,而Memcache就是客戶端。所以我們要使用Memcached,首先在服務端安裝好Memcached,並執行Memcached,然後安裝Memcache就能使用了。
在這裡我們會詳細的講解在Linux下安裝Memcached服務端,並講解通過PHP擴充套件安裝Memcache,以便我們直接通過PHP來測試Memcached。
Memcached的安裝(Linux環境下)
#1.分別把memcached和libevent下載回來,放到 /tmp 目錄下: # cd /tmp # wget <a target=_blank href="http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz" target="_blank" style="color: rgb(51, 119, 170); text-decoration: none;">http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz</a> # wget <a target=_blank href="http://www.monkey.org/~provos/libevent-1.2.tar.gz" target="_blank" style="color: rgb(51, 119, 170); text-decoration: none;">http://www.monkey.org/~provos/libevent-1.2.tar.gz</a> #2.先安裝libevent: # tar zxvf libevent-1.2.tar.gz # cd libevent-1.2 # ./configure --prefix=/usr # make # make install #3.測試libevent是否安裝成功: # ls -al /usr/lib | grep libevent lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3 -rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3 -rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a -rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3 還不錯,都安裝上了。 #4.安裝memcached,同時需要安裝中指定libevent的安裝位置: # cd /tmp # tar zxvf memcached-1.2.0.tar.gz # cd memcached-1.2.0 # ./configure --with-libevent=/usr # make # make install 如果中間出現報錯,請仔細檢查錯誤資訊,按照錯誤資訊來配置或者增加相應的庫或者路徑。 安裝完成後會把memcached放到 /usr/local/bin/memcached , #5.測試是否成功安裝memcached: # ls -al /usr/local/bin/mem* -rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached -rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
好了,以上就把memcached安裝成功了
下面安裝Memcache的PHP擴充套件
1.在http://pecl.php.net/package/memcache 選擇相應想要下載的memcache版本。2.安裝PHP的memcache擴充套件
tar vxzf memcache-2.2.1.tgz cd memcache-2.2.1 /usr/local/php/bin/phpize ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir make make install
3.上述安裝完後會有類似這樣的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/
4.把php.ini中的extension_dir = "./"修改為
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
5.新增一行來載入memcache擴充套件:extension=memcache.so
6、修改未配置後重啟PHP
到這裡我們已經把Memcache的服務端和客戶端都安裝好了,下面我們來通過PHP做一個簡單地測試
Memcache功能測試
/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
引數說明:
-d選項是啟動一個守護程序,
-m是分配給Memcache使用的記憶體數量,單位是MB,我這裡是10MB,
-u是執行Memcache的使用者,我這裡是root,
-l是監聽的伺服器IP地址,如果有多個地址的話,我這裡指定了伺服器的IP地址192.168.0.200,
-p是設定Memcache監聽的埠,我這裡設定了12000,最好是1024以上的埠,
-c選項是最大執行的併發連線數,預設是1024,我這裡設定了256,按照你伺服器的負載量來設定,
-P是設定儲存Memcache的pid檔案,我這裡是儲存在 /tmp/memcached.pid,
然後編寫PHP測試:
- < ?php
- $mem = new Memcache;
- $mem->connect("127.0.0.1", 11211); //此處的IP和埠號就是上一步我們啟動memcached指定的,否則會連線不上
- $mem->set('key', 'set a value', 0, 60);
- $val = $mem->get('key');
- echo$val;
- ?>