Memcached 是一個高性能的分布式記憶體對象緩存系統,用于動态Web應用以減輕資料庫負載。它通過在記憶體中緩存資料和對象來減少讀取資料庫的次數,進而提高動态、資料庫驅動網站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護程序(daemon )是用寫的,但是用戶端可以用任何語言來編寫,并通過memcached協定與守護程序通信。
一、Memcached簡介
Memcached是一個自由開源的,高性能,分布式記憶體對象緩存系統。
Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric為首開發的一款軟體。現在已成為mixi、hatena、Facebook、Vox、LiveJournal等衆多服務中提高Web應用擴充性的重要因素。
Memcached是一種基于記憶體的key-value存儲,用來存儲小塊的任意資料(字元串、對象)。這些資料可以是資料庫調用、API調用或者是頁面渲染的結果。
Memcached簡潔而強大。它的簡潔設計便于快速開發,減輕開發難度,解決了大資料量緩存的很多問題。它的API相容大部分流行的開發語言。
本質上,它是一個簡潔的key-value存儲系統。
一般的使用目的是,通過緩存資料庫查詢結果,減少資料庫通路次數,以提高動态Web應用的速度、提高可擴充性。
二、Memcached的特性
memcached作為高速運作的分布式緩存伺服器,具有以下的特點。
- 協定簡單
- 基于 libevent 的事件處理
- 内置記憶體存儲方式
- memcached不互相通信的分布式
三、Linux下的安裝使用
yum install memcached
如果缺少其他包請安裝以下元件
yum groupinstall "Development Tools"
四、Memcached配置檔案
Memcached的配置檔案非常的簡單,如果不需要改動就按預設的然後直接啟動即可。
主程式:/usr/bin/memcached
配置檔案:/etc/sysconfig/memcached
# cat /etc/sysconfig/memcached
PORT="11211" # memechaced監聽的端口
USER="memcached" # 運作程式的使用者
MAXCONN="1024" # 最大并發連接配接數
CACHESIZE="64" # 緩存大小
OPTIONS=""
五、Memcached的運作指令
/usr/local/memcached/bin/memcached -h
-d是啟動一個守護程序;
-m是配置設定給Memcache使用的記憶體數量,機關是MB;
-u是運作Memcache的使用者;
-l是監聽的伺服器IP位址,可以有多個位址;
-p是設定Memcache監聽的端口,,最好是1024以上的端口;
-c是最大運作的并發連接配接數,預設是1024;
-P是設定儲存Memcache的pid檔案。
作為背景程式運作
/usr/local/memcached/bin/memcached -p 11211 -m 64m -d
六、Memcached的連接配接
memcached預設沒有認證機制,可借用于SASL進行認證;是以要想連接配接memcahced的話直接使用最簡單的telnet指令即可連接配接
telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set foo 0 0 3 儲存指令
bar 資料
STORED 結果
get foo 取得指令
VALUE foo 0 3 資料
bar 資料
END 結束行
quit 退出