1) 解壓縮檔案到c:\memcached(也可選擇任意位置)
#2) 命令列輸入'c:\memcached\memcached.exe -d install'
3) start' ,此指令啟動Memcached ,預設監聽埠為11211
4) 透過memcached.exe -h 可檢視其協助
對於用戶端操作服務端,我們有多種可選方式,在這裡,我們選擇使用dll.因為dll的方式生成較快,而且避免了繁瑣的配置文件中的設置,比較方便。對於telnet指令等等,我們可以在服務端使用來檢查數據,查看cache的命中率等。
##下載完Dll之後,在專案中加入如圖引用
我在引入log4net跟Memcached.ClientLibray的時候,出現引入了,類文件裡面也加入了using,但是以生成就報錯,後來發現是.net framework版本的問題,將版本從下圖版本改為.net framework 4之後生成就ok了。
1) C/S架構,此時memcached為服務端,我們可使用各種客戶程式連接memcached伺服器。
2) Memcached的伺服器客戶端通訊不使用XML等格式,而使用簡單的基於文字行的協議,因此,透過telnet也能在memcached上保存數據,取得數據。
1) Libevent是一套跨平台的事件處理介面的封裝,能夠相容於包含這些作業系統:Windows/Linux/BSD/Solaris等作業系統的事件處理。
2) Memcached使用libevent來進行網路並發連線的處理,能夠維持在很大的同時情況下,仍可維持快速反應的能力。
為了提升效能,memcached中儲存的資料都儲存在memcahced內建的記憶體儲存空間。由於資料僅存在於記憶體中,因此重啟memcached,重啟作業系統會導致全部資料消失。另外,內容容量達到指定值之後,就基於LRU(Least Recently Used)演算法自動刪除不使用的快取。 Memcached本身是為快取而設計的伺服器,隱藏並沒有過多考慮資料的永久性問題。
Memcached儘管是「分散式」快取伺服器,但服務端並沒有分散式功能更。各個memcached不會相互通信以共享資訊。那麼,怎樣進行分散式,這完全取決於客戶端的實現,有興趣的可以百度下hash演算法。
#程式碼體會:
1) 2) 要解決的問題重點不同 cache作為。 Net中狀態管理的東東,感覺也相當強大:1,快取依賴:可以依賴或文件,資料庫,組合的依賴,並且提供了資料過期的通知機制,方便在我們在過期的時候及時更新資料。 2,通知機制的使用:以前比較早的時候,對於資料過不過期,使用的還是輪詢機制,類似循環查看資料有沒有被更新,如果被更新了,則此時更新cache。但是總感覺輪詢機制很怪怪的,比如,我在家燒一壺水,不應該是我總去看水開沒開,而是要水開了然後有個啥聲音告訴我水開了。通知機制就是這個意思,至於通知機制的原理,可以去查一下observer模式,在23中設計模式中,這個用的還蠻多的。 當初使用memcached的時候,由於cache的原因,就自然想到了這個通知機制,查了一下,貌似memcached是沒有這個的,要想自己做一個過期更新,也只能使用輪詢機制。但從memcached的使用場景去思考,我們會發現其實有過期時間就夠了。 1) 變化頻繁,且有不穩定的數據,且不需要即時入庫(如使用者線上狀態,線上人數) 2) 入口網站的新聞的等,覺得頁面靜態化仍不能滿足要求,可以放入到memcached中(配合jquery的ajax請求) …… 由於memcached沒有內建身分驗證機制,造成了使用telnet存取ip+連接埠就可以登入的情況,然後裡面的數據就成了待宰的羔羊。為了避免防止被駭掉,我們可以在memcached伺服器上對外關閉掉存取端口,只允許本機程式存取。 1) 支持更多value類型 2) 可持久化:redis會週期性的把更新的資料寫入磁碟或將修改作業寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步 3) 支援主從同步:資料可以從主伺服器任意數量的從伺服器上同步,從伺服器可以是關聯其他從伺服器的主伺服器。這使得Redis可執行單層樹複製。記憶體可以有意無意的對資料進行寫入操作。由於完全實現了發布/訂閱機制,使得從資料庫在任何地方同步樹時,可訂閱一個頻道並接收主伺服器完整的訊息發布記錄。同步對讀取操作的可擴充性和資料冗餘很有幫助。 1) 純Java的進程內快取框架,具有快速、精乾等特點,是Hibernate中預設的CacheProvider 。 2) 開源Java分散式快取: 主要面向通用快取,Java EE和輕量級容器。它具有內存和磁碟存儲,緩存加載器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支援REST和SOAP api等特點。 。 。 。 。 。 。 。 。 。 以上就是Memcached在.net中的應用的內容,更多相關內容請關注PHP中文網(www.php.cn)! 五,memcached與Cache
六,memcached的適用場景
#七,memcached的安全性問題
八,類似技巧的比較
1,Redis
2,EhCache