C# 使用教學

EnyimMemcached C# 使用教學

一、程式庫簡介

EnyimMemcached 是適用於 .NET Framework/.NET 的 Memcached 主流官方 .NET 用戶端程式庫,由 Attila Kiskó 維護,透過 NuGet 安裝,支援文字協定(Text)或二進位協定連接 Memcached 伺服器。

注意:新版 EnyimMemcached 的 NuGet 套件名稱為 Enyim.Caching

二、環境準備

  1. 啟動本機 Memcached 服務,預設連接埠:11211
  2. 使用 Visual Studio 建立 .NET Framework 主控台專案
  3. 於 NuGet 搜尋安裝套件:EnyimMemcached(套件識別:Enyim.Caching)

三、App.config 完整設定

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
  </startup>

  <!-- 必須先註冊設定節點 -->
  <configSections>
    <sectionGroup name="enyim.com">
      <section name="memcached"
               type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
    </sectionGroup>
  </configSections>

  <!-- Memcached 連線設定 -->
  <enyim.com>
    <memcached protocol="Text">
      <!-- Memcached伺服器位址 -->
      <servers>
        <add address="127.0.0.1" port="11211" />
      </servers>
      <!-- 連線集區參數 -->
      <socketPool minPoolSize="10" 
                  maxPoolSize="20" 
                  connectionTimeout="00:00:10"
                  deadTimeout="00:02:00" />
    </memcached>
  </enyim.com>
</configuration>Code language: HTML, XML (xml)

設定說明:

  • protocol="Text":使用Memcached文字協定,亦可切換為Binary二進位協定
  • minPoolSize/maxPoolSize:連線集區最小、最大連線數
  • address/port:Memcached伺服器位址與連接埠

四、使用範例(主控台程式)

using System;
using Enyim.Caching;
using Enyim.Caching.Memcached;

namespace ConsoleApplication1
{
    class Program
    {
        // 單例Memcached用戶端(建議全域共用,避免重複建立執行個體)
        private static readonly MemcachedClient uniqueInstance = new MemcachedClient();

        static void Main(string[] args)
        {
            // StoreMode.Set:索引鍵存在則覆寫,不存在則新增
            uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");

            // 讀取字串型別快取
            string value = uniqueInstance.Get<string>("site");
            Console.WriteLine(value);

            Console.Read();
        }
    }
}Code language: JavaScript (javascript)

常用API一覽

方法用途
Store(StoreMode.Set, key, value)寫入快取(覆蓋原有資料)
Store(StoreMode.Add, key, value)僅索引鍵不存在時才寫入
Get<T>(key)泛型方式讀取快取資料
Remove(key)刪除指定快取項目
GetCas(key)CAS原子讀取,適用並發場景

傳統 App.config 僅支援 .NET Framework
.NET Core/.NET 6+ 建議改用程式碼設定,不再依賴XML設定檔。

.NET Core/.NET6 程式碼設定(不使用App.config)

var config = new MemcachedClientConfiguration();
config.Servers.Add(new System.Net.IPEndPoint(System.Net.IPAddress.Loopback, 11211));
config.Protocol = MemcachedProtocol.Text;
var client = new MemcachedClient(config);Code language: JavaScript (javascript)

你可以自行在 .NET Core 以及新版 .NET 環境測試執行

C# 使用教學

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *