ubuntu memcached安裝與配置

來源:互聯網
上載者:User

分為兩個過程:memcache伺服器端的安裝和memcached用戶端的安裝。

所謂伺服器端的安裝就是在伺服器(一般都是linux系統)上安裝Memcache實現資料的儲存

所謂用戶端的安裝就是指php(或者其他程式,Memcache還有其他不錯的api介面提供)去使用伺服器端的Memcache提供的函數,需要php添加擴充。

 

1)安裝Memcache服務端

sudo apt-get install memcached

安裝完Memcache服務端以後,我們需要啟動該服務:

memcached -d -m 128 -p 11111 -u root

這裡需要說明一下memcached服務的啟動參數:

-p 監聽的連接埠

-l 串連的IP地址, 預設是本機

-d start 啟動memcached服務

-d restart 重起memcached服務

-d stop|shutdown 關閉正在啟動並執行memcached服務

-d install 安裝memcached服務

-d uninstall 卸載memcached服務

-u 以的身份運行 (僅在以root啟動並執行時候有效)

-m 最大記憶體使用量,單位MB。預設64MB

-M 記憶體耗盡時返回錯誤,而不是刪除項
-c 最大同時串連數,預設是1024

-f 塊大小增長因子,預設是1.25-n 最小分配空間,key+value+flags預設是48
-h 顯示協助

 

2)安裝Memcache用戶端(PHP5為樣本)

sudo apt-get install php5-memcache

安裝完以後我們需要在php.ini裡進行簡單的配置,開啟/etc/php5/apache2/php.ini檔案在末尾添加如下內容:

[Memcache]

 

; 是否在遇到錯誤時透明地向其他伺服器進行容錯移轉。

memcache.allow_failover = On

 

; 接受和發送資料時最多嘗試多少個伺服器,只在開啟memcache.allow_failover時有效。memcache.max_failover_attempts = 20

 

;資料將按照此值設定的塊大小進行轉移。此值越小所需的額外網路傳輸越多。

; 如果發現無法解釋的速度降低,可以嘗試將此值增加到32768。

memcache.chunk_size = 8192

 

; 串連到memcached伺服器時使用的預設TCP連接埠。

memcache.default_port = 11111

 

; 控制將key映射到server的策略。預設值”standard”表示使用先前版本的老hash策略。

; 設為”consistent”可以允許在串連池中添加/刪除伺服器時不必重新計算key與server之間的映射關係。

;memcache.hash_strategy = “standard”; 控制將key映射到server的散列函數。預設值”crc32″使用CRC32演算法,而”fnv”則表示使用FNV-1a演算法。

; FNV-1a比CRC32速度稍低,但是散列效果更好。

;memcache.hash_function = “crc32″

 

最後,儲存php.ini,執行sudo/etc/init.d/apache2 restart重啟Apache。

3)在PHP中使用Memcache

<?php

$mem = new Memcache; //建立Memcache對象

$mem->connect(”127.0.0.1″, 11111); //串連Memcache伺服器

$val = “這是一個Memcache的測試.”;

$key = md5($val);

$mem->set($key, $val, 0, 120); //增加插入一條緩衝,緩衝時間為120s

if(($k = $mem->get(’key’))){ //判斷是否擷取到指定的key

echo ‘fromcache:’.$k;

} else {

echo ‘normal’; //這裡我們在實際使用中就需要替換成查詢資料庫並建立緩衝.

}

?>

到此為止,通過上面的步驟,我們就完成了Memcache的配置和基本使用…

 

4)php5-memcache擴充提供的方法

Memcache::add — 添加一個值,如果已經存在,則返回false
Memcache::addServer — 添加一個可供使用的伺服器位址
Memcache::close — 關閉一個Memcache對象
Memcache::connect — 建立一個Memcache對象
memcache_debug — 控制調試功能
Memcache::decrement — 對儲存的某個key中的值進行減法操作
Memcache::delete — 刪除一個key值
Memcache::flush — 清除所有緩衝的資料
Memcache::get — 擷取一個key值
Memcache::getExtendedStats — 擷取進程池中所有進程的運行系統統計
Memcache::getServerStatus — 擷取運行伺服器的參數
Memcache::getStats — 返回伺服器的一些運行統計資訊
Memcache::getVersion — 返回啟動並執行Memcache的版本資訊
Memcache::increment — 對儲存的某個key中的值進行加法操作
Memcache::pconnect — 建立一個Memcache的持久連線物件
Memcache::replace — R對一個已有的key進行覆寫操作
Memcache::set — 添加一個值,如果已經存在,則覆寫
Memcache::setCompressThreshold — 對大於某一大小的資料進行壓縮
Memcache::setServerParams — 在運行時修改伺服器的參數

 

以下是在作業系統ubuntu 10.04上的Memcached的安裝與使用:

1. 下載解壓,安裝libevent

mkdir ~/src

cd ~/src

wgethttp://www.monkey.org/~provos/libevent-2.0.10-stable.tar.gz

tar xzvf libevent-2.0.10-stable.tar.gz

cd libevent-2.0.10-stable

./configure --prefix=/usr

make

sudo make install

cd ..

2.測試libevent是否安裝成功:

# ls -al /usr/lib | grep libevent

 

3. 下載解壓, 安裝memcached

wgethttp://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

tar xzvf memcached-1.4.5.tar.gz

cd memcached-1.4.5

./configure --with-libevent=/usr

make

sudo make install

cd ..

4.測試是否成功安裝memcached:

# ls -al /usr/local/bin/mem*

 

5.啟動Memcache的伺服器端:

 # /usr/local/bin/memcached -d -m 10 -u root -l127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid

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

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

-u    是運行Memcache的使用者,我這裡是root,

-l     是監聽的伺服器IP地址,如果有多個地址的話,我這裡指定了伺服器的IP地址127.0.0.1,

-p    是設定Memcache監聽的連接埠,我這裡設定了11211,最好是1024以上的連接埠,

-c    選項是最大啟動並執行並發串連數,預設是1024,我這裡設定了256,按照你伺服器的負載量來設定,

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

6.如果要結束Memcache進程,執行:

# kill 'cat /tmp/memcached.pid'

也可以啟動多個守護進程,不過連接埠不能重複。

7.重啟web服務

/etc/init.d/lighttpd -flighttpd.conf restart

8. Memcache環境測試:

telnet localhost 11211

//儲存

set

good 32 0 10

helloworld

STORED

//取回

gets good

VALUE good 32 10 10

helloworld

END

 //替換

replace good 32 0 10

worldhello

STORED

get good

VALUE good 32 10

worldhello

END

 //尾部添加

append good 32 0 5

after

STORED

get good

VALUE good 32 15

worldhelloafter

END

 //頭部添加

prepend good 32 0 6

before

STORED

get good

VALUE good 32 21

beforeworldhelloafter

END

 //刪除

delete good

DELETED

get good

END

 

安裝伺服器

sudo apt-get install memcached

$ memcached -d -m 50 -p 11211 -uroot

參數說明 -m 指定使用多少兆的緩衝空間;-p 指定要監聽的連接埠; -u 指定以哪個使用者來運行

 

安裝php 模組

sudo apt-get install php5-memcache

 

編輯設定檔

$ sudo vim/etc/php5/conf.d/memcache.ini

; uncomment the next line to enablethe module

extension=memcache.so

 

[memcache]

memcache.dbpath="/var/lib/memcache"

memcache.maxreclevel=0

memcache.maxfiles=0

memcache.archivememlim=0

memcache.maxfilesize=0

memcache.maxratio=0

 

$mem = new Memcache;

$mem->connect("127.0.0.1",11211);

$mem->set('key', 'This is amemcached test!', 0, 60);

$val = $mem->get('key');

echo $val;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.