CRUD操作

这两段代码演示 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说明

  1. Remove("key")
    删除缓存中指定key;删除后Get<T>获取不到数据,返回默认值(string为空字符串)。
  2. Increment("count", 1, 2)
    参数定义:
  • 参数1:键名 count
  • 参数2:自增步长(每次+1)
  • 参数3:初始值
  • 如果count不存在 → 创建key,初始值 = 2
  • 如果count已存在 → 在原有数值基础上 +1

Increment只支持数字字符串的值,不能对普通网址文本使用。

  1. Append(key, data)
    在当前key对应value尾部追加内容;key不存在时操作无效。
    配套还有Prepend,在value头部前置内容。

Previous:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注