Ubuntu11.04停Memcached和php5-memcache的安裝與基本使用

來源:互聯網
上載者:User
Ubuntu11.04下Memcached和php5-memcache的安裝與基本使用

目前,很多大負載網站採用了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 11211 -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 = 11211; 控制將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

connect('127.0.0.1', 11211); //串連Memcache伺服器$val = “這是一個Memcache的測試.”;$key = md5($val);$mem->set($key, $val, 0, 120); //增加插入一條緩衝,緩衝時間為120sif(($k = $mem->get('key'))){ //判斷是否擷取到指定的keyecho 'from cache:' . $k;} else {echo 'normal'; //這裡我們在實際使用中就需要替換成查詢資料庫並建立緩衝.}?>

?

對於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 — 在運行時修改伺服器的參數

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.