最近在看 memcached? 的公共課,發現memcache的確是個好東西,可以顯著地減小數據庫負載,當然我們要搞清楚,任何一樣技術都有它的優缺點,
在使用它的時候,搞清楚它的適用場景,才能揚長避短,發揮最大的作用。
適用memcached的業務場景:
1)如果網站包含了訪問量很大的動態網頁,因而數據庫的負載將會很高。由于大部分數據庫請求都是讀操作,那么memcached可以顯著地減小數據庫負載。
2)如果數據庫服務器的負載比較低但CPU使用率很高,這時可以緩存計算好的結果( computed objects )和渲染后的網頁模板(enderred templates)。
3)利用memcached可以緩存session數據、臨時數據以減少對他們的數據庫寫操作。
4)緩存一些很小但是被頻繁訪問的文件。
5)緩存Web 'services'(非IBM宣揚的Web Services,譯者注)或RSS feeds的結果.。
不適用memcached的業務場景:
1)緩存對象的大小大于1MB
Memcached本身就不是為了處理龐大的多媒體(large media)和巨大的二進制塊(streaming huge blobs)而設計的。
2)key的長度大于250字符
3)虛擬主機不讓運行memcached服務
如果應用本身托管在低端的虛擬私有服務器上,像vmware, xen這類虛擬化技術并不適合運行memcached。Memcached需要接管和控制大塊的內存,如果memcached管理的內存
被OS或 hypervisor交換出去,memcached的性能將大打折扣。
4)應用運行在不安全的環境中
Memcached為提供任何安全策略,僅僅通過telnet就可以訪問到memcached。如果應用運行在共享的系統上,需要著重考慮安全問題。
5)業務本身需要的是持久化數據或者說需要的應該是database