mysql lru Memcached的LRU演算法

2021-10-19 16:50:48 字數 802 閱讀 4713

怪我沒說清楚,比如我們的業務模型就是社交遊戲,社交遊戲的使用者特點,就是上線之後開始遊戲,操作時候十分鐘之內關閉遊戲下線。我們先定義php和mysql之間有個中介軟體叫mcache

在這個過程中,比如使用者剛上線

select money,exp from user where uid = 『1』;

於是php把這個query通過php擴充套件發給了mcache,mcache接到這個query,發現沒有資料,於是就向mysql查到資料存下來再返回給php;

幾分鐘之後,又來了乙個操作,加了4個金幣

update user set money=money+4 where uid = 『1』;

這時候,mcache接到這個query,發現已經有資料了,就直接在mcache中對這個資料修改;

幾分鐘之後,又來了乙個操作,加了10個金幣 5點經驗

update user set money=money+4, exp=exp+5 where uid = 『1』;

這時候,mcache接到這個query,發現已經有資料了,就直接在mcache中對這個資料修改;

又來了乙個操作,請求使用者當前的金幣和經驗

select money,exp from user where uid = 『1』;

這時候,mcache直接就把最新的query發給php去了。

當30分鐘之後,mcache自動將這條記錄update給mysql。

這樣能減少對mysql的寫入併發,之所以不用nosql的方案,是目前nosql的方案無法解決回檔的問題。而mysql在熱備、增量備份方面的優勢是nosql方案無法比擬的。你說呢?

Memcached記憶體管理模型與LRU演算法優化

memcached 採用的是 slab allocation 記憶體模型,如下圖 說明 1 最大記憶體預設64兆,通過 m調整,記憶體空間有slab class構成,記憶體以slab page為單位申請,分配到對應的slab class 2 slab page 最大1兆,由乙個或多個chunk組成 ...

LRU演算法的實現

0 推薦 lru演算法的實現 什麼是lru演算法lru是least recently used的縮寫,即最近最少使用頁面置換演算法,是為虛擬頁式儲存管理服務的.關於作業系統的記憶體管理,如何節省利用容量不大的記憶體為最多的程序提供資源,一直是研究的重要方向.而記憶體的虛擬儲存管理,是現在最通用,最成...

LRU演算法的實現

什麼是lru演算法?lru是least recently used的縮寫,即最近最少使用頁面置換演算法,是為虛擬頁式儲存管理服務的。關於作業系統的記憶體管理,如何節省利用容量不大的記憶體為最多的程序提供資源,一直是研究的重要方向。而記憶體的虛擬儲存管理,是現在最通用,最成功的方式 在記憶體有限的情況...