Memcached 是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對(duì)象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動(dòng)態(tài)、數(shù)據(jù)庫驅(qū)動(dòng)網(wǎng)站的速度。Memcached基于一個(gè)存儲(chǔ)鍵/值對(duì)的hashmap。其守護(hù)進(jìn)程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護(hù)進(jìn)程通信。
主要功能:
- 服務(wù)器參數(shù)監(jiān)控:STATS、SETTINGS、ITEMS、SLABS、SIZES實(shí)時(shí)刷新
- 服務(wù)器性能監(jiān)控:GET、DELETE、INCR、DECR、CAS等常用操作命中率實(shí)時(shí)監(jiān)控
- 支持?jǐn)?shù)據(jù)遍歷,方便對(duì)存儲(chǔ)內(nèi)容進(jìn)行監(jiān)視
- 支持條件查詢,篩選出滿足條件的KEY或VALUE
- 數(shù)組、JSON等序列化字符反序列顯示
- 兼容memcache協(xié)議的其他服務(wù),如Tokyo Tyrant (遍歷功能除外)
- 支持服務(wù)器連接池,多服務(wù)器管理切換方便簡(jiǎn)潔
在Nginx服務(wù)器的標(biāo)準(zhǔn)HTTP模塊中有一個(gè)ngx_http_memcached_module模塊,專門用于處理和memcached相關(guān)的配置和功能實(shí)現(xiàn),
1, memcached_pass
用于配置memcached服務(wù)器的地址
memcached_pass adress;
其中address 為memcached服務(wù)器的地址,支持IP+端口或者域名地址,也可以使用upstream指令配置一個(gè)memcacched服務(wù)器組,然后配置為upstream的名稱
2, memcached_connect_timeout
用于配置連接memcached服務(wù)器的超時(shí)時(shí)間,
memcached_connect_timeout time;
time未設(shè)置的超時(shí)時(shí)間,默認(rèn)為60,建議不要超過75;
3, memcached_read_timeout
配置Nginx服務(wù)器向memcached服務(wù)器發(fā)出兩次read請(qǐng)求之間的等待超時(shí)時(shí)間,如果在該事件沒有驚醒數(shù)據(jù)傳輸,連接將會(huì)關(guān)閉
memcached_read_timeout time;
默認(rèn)時(shí)間60
4 memcached_send_timeout
用于配置Nginx服務(wù)器向memcached服務(wù)器發(fā)出兩次write請(qǐng)求之間的等待超時(shí)時(shí)間,如果在該事件沒有驚醒數(shù)據(jù)傳輸,連接將會(huì)關(guān)閉
5 memcached_buffer_size
用于配置Nginx 服務(wù)器用于接收memcached服務(wù)器響應(yīng)數(shù)據(jù)的緩存區(qū)大小
memcached_buffer_size size
size 為設(shè)置的緩存區(qū)大小,一般時(shí)所在的平臺(tái)的內(nèi)存也的大小背書
memcached_buffer_size 4K|8K
6, memcached_next_upstream 指令
用于配置了一組memcached服務(wù)器的情況下使用,服務(wù)器組中個(gè)memcached服務(wù)器的訪問規(guī)則遵循upstream指令配置的輪詢規(guī)則,同時(shí)可以使用該指令配置在發(fā)生那些異常情況時(shí),將請(qǐng)求順次加油下一個(gè)組內(nèi)地而服務(wù)器處理
memcached_next_uptream status …
其中, status 未設(shè)置的memcached服務(wù)器返回狀態(tài),可以是多個(gè)
error 在建立連接,向memcached服務(wù)器發(fā)送請(qǐng)求或者讀取響應(yīng)頭時(shí)服務(wù)器發(fā)生錯(cuò)誤
timeout 在建立連接,向memcached服務(wù)器發(fā)送請(qǐng)求或者讀取相應(yīng)頭時(shí)服務(wù)器發(fā)生連接超時(shí)
incalid_header, memcached 服務(wù)器返回的響應(yīng)頭為空或者無效
not_found, memcached 服務(wù)器未找到對(duì)呀的鍵/值對(duì)
off 無法將請(qǐng)求發(fā)送給memcache服務(wù)短