分散式快取系統之Memcached

技術小阿哥發表於2017-11-14

簡單介紹:

Memcache快取資料庫:減少資料庫壓力。高效能的分散式記憶體快取伺服器,用於動態Web應用,減少I/O,提高web訪問速度以減輕資料庫負載,以提高動態Web應用的速度、提高可擴充套件性。利用 Memcached 處理實時資料讀寫;MySQL是影響效能的最大瓶頸,可以用一臺MySQL主庫(只寫)+多臺MySQL輔庫(只讀)的主輔庫叢集來解決。另外,訪問計數等實時性很強的東西用Memcache做快取。基於c#語言寫的呼叫libevent庫事件來實現。

1. hash表結構:key、value存取方式

2. 工作方式:memcached是以守護程式方式執行一個或多個伺服器中,隨時會接受客戶端(如:PHP)連線或操作。

Linux安裝配置

一、Memcached安裝

1
2
3
4
5
6
wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
yum install libevent libevent-devel #安裝Memcached元件
tar zxvf memcached-1.4.10.tar.gz
cd memcached-1.4.10
./configure
make && make install

檢視是否成功安裝memcached

1
2
3
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

二、安裝Memcache的PHP擴充套件

1
2
3
4
5
6
wget http://pecl.php.net/get/memcache-3.0.6.tgz
tar zvxf memcache-3.0.6.tgz
cd memcache-3.0.6
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make && make installmemcache模組

使php載入memcache模組

1
2
vi /etc/php.ini
extension=memcache.so

三、啟動Memcache的伺服器端:

1
/usr/local/bin/memcached -d -m 128 -l 192.168.0.10 -p 11211

-d選項是啟動一個守護程式,

-m是分配給Memcache使用的記憶體數量,單位是MB

-u是執行Memcache的使用者

-l是監聽的伺服器IP地址

-p是設定Memcache監聽的埠,最好是1024以上的埠

-c選項是最大執行的併發連線數,預設是1024,根據你伺服器的負載量來設定

-P是設定儲存Memcache的pid檔案,我這裡是儲存在 /tmp/memcached.pid,

結束Memcache程式,執行:killall memcached


Windows安裝配置

下載Memcached:http://ishare.iask.sina.com.cn/f/36094281.html

下載5.3php_memcache.dll:http://code.google.com/p/sirius/downloads/detail?name=php_memcache.dll&can=2&q=

一、Memcached和Memcache安裝
1、 下載memcache的windows穩定版,解壓放某個盤下面,比如在c:memcached

2、 CMD頁面下輸入 ‘c:memcachedmemcached.exe -d install’ #安裝memcached到系統服務

3、安裝php_memcache.dll,下載對應的php版本
4、載入memcache客戶端,在C:winntphp.ini 加入一行 ‘extension=php_memcache.dll’

5、啟動memcached:

c:memcachedmemcached.exe -d –m 128 –l 127.0.0.1 –p 11211 start #預設埠:11211

二、Memcache環境測試

1.重新啟動Apache,然後檢視一下phpinfo,如果有memcache,那麼就說明安裝成功!

2.也可以執行下面的php檔案,如果有輸出This is a test!,就表示環境搭建成功。

1
2
3
4
5
6
7
< ?php
$mem = new Memcache;
$mem->connect(“127.0.0.1″, 11211);
$mem->set(‘key’, ‘This is a test!’, 0, 60);
$val = $mem->get(‘key’);
echo $val;
?>

其他測試:telnet 192.168.0.202 11211或phpinfo()

常用命令:status、version、flush_all、quit、get、add、set



本文轉自 李振良OK 51CTO部落格,原文連結:http://blog.51cto.com/lizhenliang/1290430,如需轉載請自行聯絡原作者


相關文章