这两段代码演示 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(key, 步长, 初始值)
uniqueInstance.Increment("count", 1, 2);
Console.WriteLine(uniqueInstance.Get<string>("count"));Code language: JavaScript (javascript)
关键API说明
Remove("key")
删除缓存中指定key;删除后Get<T>获取不到数据,返回默认值(string为空字符串)。Increment("count", 1, 2)
参数定义:
- 参数1:键名
count - 参数2:自增步长(每次+1)
- 参数3:初始值
- 如果
count不存在 → 创建key,初始值 = 2 - 如果
count已存在 → 在原有数值基础上 +1
Increment只支持数字字符串的值,不能对普通网址文本使用。
Append(key, data)
在当前key对应value尾部追加内容;key不存在时操作无效。
配套还有Prepend,在value头部前置内容。