Ubuntu環境下Memcached的應用

2021-06-27 22:05:20 字數 1900 閱讀 3659

memcached 是一套高效能的分布式記憶體物件快取系統,用於動態web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提高動態、資料庫驅動**的速度。memcached基於乙個儲存鍵/值對的hashmap。其守護程序(daemon )是用c寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護程序通訊。

memcached的api使用迴圈冗餘校驗(crc-32)計算鍵值後,將資料分散在不同的機器上。當資料**滿了以後,接下來新增的資料會以lru機制替換掉。由於memcached通常只是當作快取系統使用,所以使用memcached的應用程式在寫回響應較慢的系統時(如後台的資料庫)就需要額外的程式來更新memcached內的資料。

memcached作為高速執行的分布式快取伺服器,具有以下的特點。

協議簡單、事件處理、記憶體儲存方式、通訊分布式。

memcached的伺服器、客戶端通訊並不使用複雜的xml等格式,而使用簡單的基於文字行的協議。因此,通過telnet也能在memcached上儲存資料、取得資料。

memcached事件處理基於libevent庫, libevent將linux的epoll、bsd類作業系統的kqueue等事件處理功能封裝成統一的介面。即使對伺服器的連線數增加,也能發揮強勁的輸出效能。memcached正因使用這個libevent庫,才能在linux、bsd、solaris等作業系統上發揮其高效能。

為了提高效能,memcached中儲存的資料都儲存在memcached內建的記憶體儲存空間中。由於資料僅存在於記憶體中,因此重啟memcached、重啟作業系統會導致全部資料消失。另外,當內容容量達到指定值之後,就會使用基於lru(least recently used)演算法自動刪除不使用的快取。memcached本身是為快取而設計的伺服器,因此並沒有過多考慮資料的永久性儲存問題。

memcached儘管是「分布式」快取伺服器,但伺服器端並沒有分布式功能。各個memcached不會互相通訊以共享資訊。分布式功能需要在客戶端實現。

測試環境:ubuntu 14.04.1 lts (gnu/linux 3.13.0-32-generic x86_64)

通過原始碼編譯安裝,編譯前,確認gcc,make,patch等編譯工具是否已安裝;

安裝gcc/g++

sudo apt-get install build-essential

執行memcached需要用到libevent,因此優先安裝libevent。

3、2、1 安裝libevent

3、2、2 安裝memcached使用telnet測試:

啟動memcached:

memcached -d -p 12345 -u nobody -c 1024 -m 64

telnet連線到memcached:

telnet localhost 12345

儲存資料:

set test 0 30 14

memcached test

讀取資料:

get test

memcached相關命令:(需要使用telnet:連線到memcached之後才可以使用命令)

「stats」,使用它可以獲得各種各樣的資訊, 包括資源利用率在內的各種資訊;

「stats slabs」或「stats items」還可以獲得關於快取記錄的資訊;

「quit」,結束程式輸入。

問:為何我正確配置了memcached,埠是11111,測試卻連線不上?

答:memcached的監聽埠需要memcached的預設埠11211,由於11111小於11211,所以連線不上,更改埠即可!

問:flush_all [options] ,options可選引數的數字代表什麼?

答:options是用數字表示,以秒為單位,是延遲多長時間執行flush_all的意思,如【flush_all 5】,就是五秒後執行flush_all命令。

centOS環境下安裝與執行memcached

yum install memcachedwhereis memcached 查詢memcached的安裝路徑 usr bin memcached d m 512 l 127.0.0.1 p 10000 u root 執行 d是啟動乙個守護程序 m是分配給memcache使用的記憶體數量,單位是mb...

windows xp下如何安裝memcached

二 安裝步驟 1 解壓到指定目錄,如 c memcached memcached win32 1.4.4 14。2 用cmd開啟命令視窗,轉到解壓的目錄,輸入 memcached.exe d install 3 開啟控制面板,開啟服務,可以看到memcached已經在上面可,如果沒有啟動,則手動啟動...

openstack 基礎環境4 Memcache

記憶體快取 cpu對各種儲存器的訪問速度比較 暫存器 ns cache 幾十ns 記憶體 幾百ns 硬碟 ms 由於硬碟是儲存資料持久化的方式,所以資料最終都是儲存到硬碟,但是硬碟的速度完全不能滿足先如今的需求,這就需要把資料快取到記憶體中提高效能 快取系統可以認為是基於記憶體的資料庫,相對於後端大...