memcachedb-持久化存儲的緩存系統
memcachedb故名思義就是 memcached + bdb,是基于memcached Socket層和berkeley-db存儲層結構的實現, 是新浪互動社區技術團隊2007年的一項重大的技術成果,現在應用于新浪互動社區多個產品線中,其中包括新浪博客等重頭產品。能夠實現任意memcache api的調用、數據實時落地以及主輔實時備份。
選擇memcachedb:沒 有什么特殊的原因,我們有最好的理由就是,在做到最大不犧牲數據讀、寫性能的前提下,我們能夠讓您原來存儲在memcache里的數據不再遭受系統宕機或 者系統掉電而丟失,即使服務器電源爆炸了,只要硬盤還能夠正常工作,換到另外一臺服務器上,您的數據依然安然無恙地在硬盤上。
性能:我們做過小數據測試,小數據(幾十個字節)數據的讀寫,每秒鐘并發能夠維持在5000+(單塊146Scis硬盤,CPU和內存配置幾乎可以忽略因為這不是性能瓶頸)。基本上滿足所有互聯網高效存儲的應用。
應用場合:需 要頻繁讀寫的小數據。例如數字類服務就像點擊數,需要頻繁寫入小數據的例如評論系統,需要記錄用戶狀態的例如在線人數以及在線用戶等等。當然,如果您想用 來存儲單筆超過10K以上的數據,例如新聞或者文章或者論壇帖子也可以,但是我們沒有嘗試過,如果您真的用來這樣子玩了,可以反饋給我。
數據備份&&讀寫分離:memcachedb支持主輔實時無差異同步,配置主服務和輔服務僅僅需要很短的一條啟動命令。當然,您也可以利用這一便利特性來實現讀寫分離,那樣子會讓您的系統更加的高效。
穩定性:memcachedb目前被應用于新浪互動社區多個產品線中,具有鋼鐵般的品質。
缺點:memcached不支持內存對象的遍歷操作,當然更加不能支持復雜的查詢操作,只能支持根據已知的key去查詢對應的value。但后續我會介紹另外一個東東memcache_engine,它為mysql提供了一個memcached引擎。
一、安裝
直接在memcached-1.2.2.tar.gz找到INSTALL文件,按照步驟安裝就行了。很簡單。
二、啟動
#第一種,讀寫合并模式,即不做輔拷貝,即讀又寫,不做冗余備份
memcachedb -p21211 -d -r -u root -H /data/mdb_11211 -N
#第二種,讀寫分離/備份模式
#主服務器 192.168.0.1 讀寫監聽 11211 ,同步通過31211的端口完成,不占用繁忙的主服務端口
memcachedb -p21211 -d -r -u root -H /data/mdb_11211_m -N -R 127.0.0.1:31211 -M
# 輔服務器 192.168.0.2 只讀監聽 21212,從192.168.0.1 的 31211端口同步數據,同時再開一個31212端口對外提供數據同步服務
memcachedb -p21212 -d -r -u root -H /data/mdb_11211_from_16801_s -O 192.168.0.1:31211 -R 192.168.0.2:31212 -S