EnyimMemcached C# による利用方法
1.ライブラリ概要
EnyimMemcached は .NET Framework/.NET 向けのメジャーなMemcached公式.NETクライアントライブラリです。Attila Kiskó によって保守され、NuGetからインストール可能です。テキストプロトコルまたはバイナリプロトコルでMemcachedサーバーへ接続します。
備考:新しいバージョンのEnyimMemcachedはNuGetパッケージ名が Enyim.Caching となります
2.環境準備
- ローカルのMemcachedサービスを起動、デフォルトポート:
11211 - Visual Studio で .NET Framework コンソールプロジェクトを作成
- NuGetでパッケージを検索・インストール:
EnyimMemcached(パッケージID:Enyim.Caching)
3.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サーバーのアドレスとポート番号
4.利用サンプル(コンソールアプリ)
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# 利用方法
Previous: コマンドライン上で利用します
Next: CRUD処理