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