memcache 學習筆記

2021-06-16 18:44:52 字數 1337 閱讀 7538

在網上找了乙份比較好的日本人寫的memcache教程,花一下午的時間熟悉了一下,記錄一下,以後也許會有用。

memcached 是指高效能的分布式快取伺服器,通過快取資料,減少資料庫的訪問字數,提高相應速度。

它的幾個特點:

1.協議簡單

2.基於libevent事件處理

3.內建記憶體儲存方式

4.memcached不相互通訊

linux 下memcache安裝

安裝memcached需要先安裝libevent,啟動memcached 的方式

bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -p /tmp/memcached.pid

-d 建立守護程序 

-m 占用記憶體大小(m) 

-u 使用者 

-l 連線ip

-p 埠號

-c 最大連線數

-p pid建立位置

-vv 用very verbose 模式啟動,除錯資訊和錯誤直接輸出到控制台

客戶端支援用perl,php,python,c++等多種方式進行連線

可直接telnet ip位址 埠號進行連線

set foo 0 0 3

bar即可儲存key值為 foo, value 為bar 的鍵值對

檢視php memcached 提供的訪問介面,直接通過getmulti 檢索多個元素

memcached 記憶體儲存

資料儲存在記憶體中,重啟即會消失,記憶體滿後將會基於lru(最近最少使用)演算法進行刪除, (-m 禁止使用lru,滿後則出錯)

slab allocation機制 

按照預先規定的大小,將分配的記憶體分割為特定長度的塊(chunk)

將會根據收到的資料大小,選擇適合的slab (特定大小的chunk組)

缺點:無法有效的利用空間

grown factor 調優

在啟動時制定引數 -f 2  (default 值為 1.25), 設定不同chunk之間的差異大小

檢視memcached 的內部狀態 stats

memcached 的刪除機制

lazy expiration(惰性) 在get時檢視時間戳,檢查是否過期 

memcached的分布式演算法

1. 根據餘數計算分散 

求key的crc值,除以memcached機器台數進行分配。缺點:新增或者移除機器時,快取重組代價較大

2.consistent hashing

求memcached的伺服器以及key的hash值,對映到圓上,以抑制key的重新分配 (php庫中的libketama已經實現該演算法)

Memcache學習筆記一

過年期間,看了一些memcache的資料,整理了乙個ppt。memcached分析view more presentations from wonwang.收穫最大的部分,我覺得是在應用上如何更好的對快取進行使用和處理,來解決 cache stamples 的問題。通常只進行一次快取判斷的邏輯,在應...

GAE中Memcache快取學習筆記

memcache是高效能,分布式的儲存系統,主要作用是實現資料查詢結果的快速獲取。它是以 名 值 對的形式儲存在快取裡的。例子 set key,value,time 0,min compress len 0 不理會以前的內容設定key的值,time單位是秒 get key 獲取key對應的內容 de...

Memcache 使用筆記

memcached使用 cd d phpstudy pro extensions memcached 1.4.5 amd64 安裝 memcached.exe d install 啟動 memcached.exe d start 停止 memcached.exe d stop 不適合場景 1 快取的...