この2つのコードはMemcachedの基本的なCRUD処理、数値のインクリメント、追記処理を実演しています。まず主要なAPIと実行ロジックを整理します。
Set / Replace / Add
static void Main(string[] args)
{
MemcachedClient uniqueInstance = new MemcachedClient();
// 1. StoreMode.Set:キーが無ければ新規作成、存在すれば上書き
uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// 出力:foxdevelop.com
// 2. StoreMode.Replace:キーが**存在する場合のみ**更新、キーがなければ何も実行しない
uniqueInstance.Store(StoreMode.Replace, "site", "foxdevelop.com2");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// 出力:foxdevelop.com2
// 3. StoreMode.Add:キーが**存在しない場合のみ**追加、既存キーは変更しない
uniqueInstance.Store(StoreMode.Add, "site", "www.google.com");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// キーsiteは既存のため処理されず、出力はそのまま:www.baidu.com
// 4. Setを再呼び出し、値を上書き
uniqueInstance.Store(StoreMode.Set, "site", "www.microsoft.com");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// 出力:www.microsoft.com
// Append:既存valueの末尾に文字列を追記
// uniqueInstance.Append("site", "");
// Increment 数値をインクリメント
uniqueInstance.Increment("count", 1, 2);
Console.Read();
}Code language: JavaScript (javascript)
StoreMode 3モードの比較
| モード | 実行ルール |
|---|---|
StoreMode.Set | 汎用、キーがあれば上書き、無ければ新規作成 |
StoreMode.Add | 新規登録専用、キーが存在すると書き込みをスキップ |
StoreMode.Replace | 更新専用、キーが存在しないと書き込みをスキップ |
Remove による削除と Increment によるインクリメント
MemcachedClient uniqueInstance = new MemcachedClient();
uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// 出力:foxdevelop.com
// Remove:指定キーを削除
uniqueInstance.Remove("site");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// キー削除済み、Getでは取得できず空文字を返す
// Append コメントアウト
// uniqueInstance.Append("site",);
// Increment(キー, 増分値, 初期値)
uniqueInstance.Increment("count", 1, 2);
Console.WriteLine(uniqueInstance.Get<string>("count"));Code language: JavaScript (javascript)
主要API解説
Remove("key")
キャッシュから指定したキーを削除。削除後はGet<T>でデータを取得できず、既定値(文字列なら空文字)が返ります。Increment("count", 1, 2)
パラメータの意味:
- 引数1:キー名
count - 引数2:増分値(1ずつ加算)
- 引数3:初期値
countが存在しない場合 → キーを作成、初期値 = 2countが存在する場合 → 元の数値に +1
Incrementは数値形式の文字列にだけ対応し、URLなど普通のテキストには使えません。
Append(key, data)
対象キーのvalueの末尾に文字列を追記。キーが存在しないと処理は実行されません。
先頭へ挿入するPrependも用意されています。
CRUD処理