MemCache是一個自由、源碼開放、高性能、分佈式的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫的負載。數據庫
-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 顯示幫助 memcached -p 11211 -u root -m 3000 -c 30720
memcache::add 方法:add方法用於向memcache服務器添加一個要緩存的數據。 memcache::set 方法:set方法用於設置一個指定key的緩存內容,set方法是add方法和replace方法的集合體 memcache::replace方法: replace方法用於替換一個指定key的緩存內容,若是key不存在則返回false memcache::flush - 清除全部緩存的數據 ps: memcache 過時時間是秒
memcached的過時時間並不能隨便設置,有一個最大時限就是30天,若超過30天后,存儲時返回true,可是在取數據的時候取不到。(在取數據的時候纔去作驗證,看看數據是否失效)緩存
說到這個過時時間了,就不得不說說memcached的緩存失效策略:服務器
memcached的緩存失效策略是LRU(最近最少使用)加上到期失效策略。當向memcached存儲數據時,你可能會設置一個過時時間,能夠是永久也能夠是一段時間,可是若是一旦給memcached分配的內存使用完畢,則首先會替換掉已失效的數據,其次是最近最少使用的數據。分佈式
鍵被限制在 250 字符以內。數據項不能超過 1M (這個值由其內存分配機制決定的),由於這是最大的塊( slab )值。若是對數據超過1M的值進行set,則會返回FALSE。memcached
memcached默認狀況下采用了名爲Slab Allocator的機制分配、管理內存。在該機制出現之前,內存的分配是經過對全部記錄簡單地進行malloc和free來進行的。可是,這種方式會致使內存碎片,加劇操做系統內存管理器的負擔,最壞的狀況下,會致使操做系統比memcached進程自己還慢。Slab Allocator就是爲解決該問題而誕生的。Slab Allocator的基本原理是按照預先規定的大小,將分配的內存分割成特定長度的塊,以徹底解決內存碎片問題.性能
最大同時鏈接數由-c 設置操作系統
首先求出機器節點的hash值(怎麼算機器節點的hash?ip能夠做爲hash的參數吧。。固然還有其餘的方法了),而後將其分佈到0~2^32的一個圓環上(順時針分佈)。以下圖所示:rest