我給大家介紹了如何在windows平台上部署memecached服務端,如何在.net平台中應用memcached,詳細介紹了兩種流行的客戶端元件的配置,使用(儲存、取值、替換、刪除、快取時間設定等),優缺點等。在我們的測試專案中,主要是針對「單台伺服器」的應用場景。
事實上,在我們實際開發中,往往需要多台伺服器。這樣才能形成真正的「分布式架構」,才能更好的發揮memcached的巨大優勢。當然,也不是絕對優勢。任何架構都不可能絕對完美。回顧一下memcached的基本原理,其實就是在記憶體中維護一張巨大的hash表嘛。通俗點說,就是通過鍵值對的方式將資料快取在伺服器記憶體中,降低資料庫伺服器的負載,更重要的就是,資料庫的效能瓶頸主要在於i/o環節(這也是關係型資料庫最大的弱點,雖然具有良好的穩定性,但面對日益暴漲的使用者數量,海量資料,高併發等問題,確實很難應付。所以近一兩年,很多開源團隊和技術愛好者很推崇「nosql」技術)。稍微懂點計算機的都知道,記憶體的讀寫肯定要比磁碟i/o操作效率高很多。但是有了memcached就能徹底的放棄傳統「關係型資料庫」嗎?當然不是,memcached這東西用不好,可能反而會降低效能,而且還可以造成致命的資料丟失。
開始思考一些問題,在多台memcached伺服器共存的情況下,資料到底是如何儲存的呢?如果是資料是實時同步的話,那同步工作到底是如何完成的呢?是伺服器端的機制還是客戶端的操作?假如是分布儲存的,那麼其中一台伺服器宕機之後,那資料不就是丟失了嗎?還有就是,如何才能真正實現多台memcached伺服器的「負載均衡」呢?
帶著這些疑惑,動手進入例項。通過反覆的測試,監控,得出結論。往往比聽別人的更可靠(有些技術或者理論,就算官方的也可能有出錯或者遺漏)。
這裡,首先推薦兩款memcached的效能監視工具。通過工具,我們能夠清楚的看到,資料是如何分布在多台伺服器記憶體中的,讀取/設定的操作次數等資訊。
使用最新版的memcached.exe,替換掉binaryfiles目錄下的memcached.exe(老版本的)。
可以看看該管理工具的介面:
監控介面如下:
memcached監控工具
最簡單和最直接的方式是在啟動memcached的時候加入 vv引數,從而在控制台列印每次客戶端的請求和相應,這非常適合開發。另外一種較為直接的方式是通過telnet進行檢視,例如 若server為本機11211埠,可使用 telnet localhost 11211 進行登入,然後使用stats即可...
memcached監控工具
最簡單和最直接的方式是在啟動memcached的時候加入 vv引數,從而在控制台列印每次客戶端的請求和相應,這非常適合開發。另外一種較為直接的方式是通過telnet進行檢視,例如 若server為本機11211埠,可使用 telnet localhost 11211 進行登入,然後使用stats即可...
memcached記憶體溢位監控
通過memcached tool可以監控memcached的當前狀態,通過抓取它的evictions判斷它是否記憶體溢位 具體指令碼如下 bin sh base dirname 0 baza 172.16.131.167 port 12000 status init funcheck dos2uni...