zoukankan      html  css  js  c++  java
  • 在 ASP.NET 環境下使用 Memcached 快速上手指南

    之前一直想研究 Memcached,這幾天花了些時間研究Memcached Providers 好讓我現有的 ASP.NET 專案能解決多台主機間快取不同步的狀況, 想不到花沒多少時間就上手了,也因此做了一些記錄。

    安裝 Memcached (ver 1.4.4) for Win32

    1. 下載 memcached 1.4.4 Windows 32-bit binary memcached Windows 64-bit pre-release

    2. 在 C:\Program Files 建立一個 memcached 目錄

    3. 將下載的壓縮檔解壓縮至 C:\Program Files\memcached 目錄

    4. 開啟命令提示字元

    5. 將 memcached 註冊進 Windows 服務

    6. 啟動 memcached 服務

    移除 Memcached (ver 1.4.4) for Win32

    1. 開啟命令提示字元

    2. 停止 memcached 服務

    3. 將 memcached 服務從 Windows 服務中移除

    4. 移除 C:\Program Files\memcached 目錄

    測試 memcached 是否正常運作

    1. 透過 telnet 指令連接到 localhost 的 11211 port, 其中 Port 11211 為 memcached 預設的 Listen Port,如果有開啟防火牆記得要設定才能讓遠端連接。( 預設會 Listen 所有 interface )

    2. 輸入 stats 指令,並按下 Enter 取得目前 memcached 服務的運作狀態,有資料就代表安裝成功了


    3. 輸入 quit 指令,並按下 Enter 退出

    備註:完整指令請參考 memcached protocol

    設定 ASP.NET 專案

    1. 下載 Memcached Providers 組件 ==>  Memcached Providers 1.2 (.NET 3.5)

    2. 將以下組件複製到 ASP.NET 網站的 bin 目錄下,或透過 加入參考(Add Reference) 方式將加入專案

    • Enyim.Caching.dll
    • Enyim.Caching.pdb
    • MemcachedProviders.dll
    • MemcachedProviders.pdb

    設定 Memcached Cached Provider 並註冊至 web.config

    1. 在 <configSections> 區段加入以下定義

    2. 然後在 <appSettings> 之上加入以下定義

     開始使用 memcached 的 API

    1. 匯入 MemcachedProviders.Cache 命名空間

    2. 取得 Cache 項目

    3. 寫入 Cache 項目

    4. 移除 Cache 項目

    5. 移除所有 Cache 項目

    心得總結 (優點)

    • 架構簡單、容易上手
    • API 與 ASP.NET 快取機制類似,將現有的 HttpRuntime.Cache 替換成 DisCache 也很容易,像我大約只花半天就將一個不小的專案從ASP.NET 快取轉移至 memcached 快取
    • 安裝部署容易
    • 很容易擴充記憶體快取的總量,增加 memcached 伺服器並修改 web.config 即可!
    • 超高效能,同時支援 TCP 與 UDP 協定
    • 跨平台、跨語言、開放協定、開放原始碼、許多大網站都使用 memcached
    • 內建提供 Session Provider

    心得總結 (缺點)

    • 無法取得所有快取項目,用 ASP.NET 快取可以透過 Cache.GetEnumerator() 取得所有快取項目 ( 參考: ASP.NET 如何將目前的 Cache 物件全部清空 ),但在 memcached 完全沒辦法,因為 memcached protocol 根本沒有定義這個功能,除非你自行實做。
    • 網路上可下載的 memcached 版本都不支援 高可用性(High Availability; HA) 特性
    • AppFabric Caching (Velocity) 相比功能少很多
    • 缺乏中文資源、文件少、中文社群不積極、有 Bug 不見得有人理 (還好是開源碼可以自己改)

    相關連結

  • 相关阅读:
    [Swift]关键字:class与staitc的区别
    [Swift]LeetCode1171. 从链表中删去总和值为零的连续节点 | Remove Zero Sum Consecutive Nodes from Linked List
    [Swift]LeetCode1172. 餐盘栈 | Dinner Plate Stacks
    [Swift]LeetCode1170. 比较字符串最小字母出现频次 | Compare Strings by Frequency of the Smallest Character
    [Swift]LeetCode1169. 查询无效交易 | Invalid Transactions
    [Swift]LeetCode1167. 连接棒材的最低费用 | Minimum Cost to Connect Sticks
    [Swift]LeetCode1166.设计文件系统 | Design File System
    [Swift]LeetCode1165. 单行键盘 | Single-Row Keyboard
    [Swift]LeetCode1168. 水资源分配优化 | Optimize Water Distribution in a Village
    METRO风格
  • 原文地址:https://www.cnblogs.com/wmlunge/p/2299276.html
Copyright © 2011-2022 走看看