天天看點

分布式緩存系統之Memcached

簡單介紹:

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

<code>wget http:</code><code>//memcached</code><code>.googlecode.com</code><code>/files/memcached-1</code><code>.4.10.</code><code>tar</code><code>.gz</code>

<code>yum </code><code>install</code> <code>libevent libevent-devel </code><code>#安裝memcached元件</code>

<code>tar</code> <code>zxvf memcached-1.4.10.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>memcached-1.4.10</code>

<code>.</code><code>/configure</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

檢視是否成功安裝memcached

<code>ls</code> <code>-al </code><code>/usr/local/bin/mem</code><code>*</code>

<code>-rwxr-xr-x 1 root root 137986 11?? 12 17:39 </code><code>/usr/local/bin/memcached</code>

<code>-rwxr-xr-x 1 root root 140179 11?? 12 17:39 </code><code>/usr/local/bin/memcached-debug</code>

二、安裝memcache的php擴充

<code>wget http:</code><code>//pecl</code><code>.php.net</code><code>/get/memcache-3</code><code>.0.6.tgz</code>

<code>tar</code> <code>zvxf memcache-3.0.6.tgz</code>

<code>cd</code> <code>memcache-3.0.6</code>

<code>/usr/local/php/bin/phpize</code>

<code>.</code><code>/configure</code> <code>–with-php-config=</code><code>/usr/local/php/bin/php-config</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>installmemcache子產品</code>

使php加載memcache子產品

<code>vi</code> <code>/etc/php</code><code>.ini</code>

<code>extension=memcache.so</code>

三、啟動memcache的伺服器端:

<code>/usr/local/bin/memcached</code> <code>-d -m 128 -l 192.168.0.10 -p 11211</code>

-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&amp;can=2&amp;q=

一、memcached和memcache安裝:

1、 下載下傳memcache的windows穩定版,解壓放某個盤下面,比如在c:\memcached

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

3、安裝php_memcache.dll,下載下傳對應的php版本

4、加載memcache用戶端,在c:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’

5、啟動memcached:

c:\memcached\memcached.exe -d –m 128 –l 127.0.0.1 –p 11211 start #預設端口:11211

二、memcache環境測試:

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

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

7

<code>&lt; ?php</code>

<code>$mem = new memcache;</code>

<code>$mem-&gt;connect(“127.0.0.1″, 11211);</code>

<code>$mem-&gt;</code><code>set</code><code>(‘key’, ‘this is a </code><code>test</code><code>!’, 0, 60);</code>

<code>$val = $mem-&gt;get(‘key’);</code>

<code>echo</code> <code>$val;</code>

<code>?&gt;</code>

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

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