這兩段程式碼示範 Memcached 的基礎 CRUD、數值遞增、附加操作,先整理核心 API 與執行邏輯:
Set / Replace / Add
static void Main(string[] args)
{
MemcachedClient uniqueInstance = new MemcachedClient();
// 1. StoreMode.Set:key不存在就建立,已存在則直接覆寫
uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// 輸出:foxdevelop.com
// 2. StoreMode.Replace:只有key**存在**才更新,key不存在不會執行
uniqueInstance.Store(StoreMode.Replace, "site", "foxdevelop.com2");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// 輸出:foxdevelop.com2
// 3. StoreMode.Add:只有key**不存在**才新增,key已存在就不變更
uniqueInstance.Store(StoreMode.Add, "site", "www.google.com");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// key 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 三種模式比較
| 模式 | 執行規則 |
|---|---|
StoreMode.Set | 通用模式,key存在就覆寫、不存在就建立 |
StoreMode.Add | 僅新增,key已存在就放棄寫入 |
StoreMode.Replace | 僅更新,key不存在就放棄寫入 |
Remove 刪除與 Increment 遞增
MemcachedClient uniqueInstance = new MemcachedClient();
uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// 輸出:foxdevelop.com
// Remove:刪除指定的key
uniqueInstance.Remove("site");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// key已刪除,Get讀取不到,回傳空字串
// Append 已註解
// uniqueInstance.Append("site",);
// Increment(鍵名, 遞增步長, 初始值)
uniqueInstance.Increment("count", 1, 2);
Console.WriteLine(uniqueInstance.Get<string>("count"));Code language: JavaScript (javascript)
重要API說明
Remove("key")
刪除快取內指定key;刪除後Get<T>讀不到資料,會回傳預設值(字串型別為空字串)。Increment("count", 1, 2)
參數定義:
- 參數1:鍵名
count - 參數2:遞增步長(每次 +1)
- 參數3:初始值
- 若
count不存在 → 建立key,初始值 = 2 - 若
count已經存在 → 在原有數值之上 +1
Increment只接受數字格式字串,不能用在一般網址文字。
Append(key, data)
在目標key對應 value 的尾巴追加內容;key不存在時不會有任何效果。
還有對應的Prepend,可以在 value 開頭插入內容。
CRUD操作