Ubuntu下Memcache的安裝與基本使用

2021-12-29 21:22:13 字數 3174 閱讀 5942

在全世界範圍內很多大負載站點採用了memcache作快取服務,以分擔資料庫伺服器的壓力。

這裡只介紹在ubuntu下如何配置memcache和如何在php使用memecache,對於更深入的了解,比如memcache的運作機理或更高階的應用還是google一下…^_^

關於memcache與memcached

memcache是專案名,memcached是服務名。讓很多初接觸的人感覺很是莫名其妙。個人認為正確的應該是用前者用更為正確一點。

安裝memcache

memcache分為兩部分,memcache服務端和客戶端。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客戶端

sudo apt-get install php5-memcache

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

[memcache]

; 乙個高效能的分布式的記憶體物件快取系統,通過在記憶體裡維護乙個統一的巨大的hash表,

; 它能夠用來儲存各種格式的資料,包括影象、**、檔案以及資料庫檢索的結果等。

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

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。

在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』))) else

?>

對於key,通常用md5 查詢語句來獲取,在實際使用中根據具體需要來決定好了…

通過上面的步驟,我們就完成了memcache的配置和基本使用…

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下memcache的安裝與基本使用

關於memcache與memcached memcache是專案名,memcached是服務名。讓很多初接觸的人感覺很是莫名其妙。個人認為正確的應該是用前者用更為正確一點。安裝memcache memcache分為兩部分,memcache服務端和客戶端。memcache服務端是作為服務來執行的,所有...

PHP Windows下 Memcache 的安裝

很多phper不知道如何在windows下搭建memcache的開發除錯環境,所以寫篇關於 memcache 安裝的文件分享給大家。memcached的基本設定 p 監聽的埠 l 連線的ip位址,預設是本機 d start 啟動memcached服務 d restart 重起memcached服務 ...

Linux下的Memcache安裝

最近在研究怎麼讓discuz 去應用memcache去做一些事情,記錄下memcache安裝的過程。linux下memcache伺服器端的安裝 2.先安裝libevent tar zxvf libevent 1.2.tar.gz cd libevent 1.2 configure prefix us...