首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ServiceStack ICacheClient增量不起作用

ServiceStack ICacheClient增量不起作用
EN

Stack Overflow用户
提问于 2012-10-30 15:15:50
回答 1查看 569关注 0票数 5

我对ServiceStack.CacheAccess.Memcached.MemcachedClientCache.有意见Increment方法不像预期的那样工作。

在测试中,我使用了一个常规控制台应用程序和ICacheClient接口。

根据方法文档:

在更改该项之前,必须将其插入缓存。 必须以System.String的形式插入该项。 该操作仅适用于System.UInt32values,所以SO-1始终表示没有找到该项。

所以我们开始:

代码语言:javascript
运行
复制
ICacheClient client = new MemcachedClientCache();
string key = "test";
bool result = client.Remove(key);
Console.WriteLine("{0} removed: {1}", key, result);

//The item must be inserted as a System.String.   
result = client.Add(key, "1");
Console.WriteLine("added {0}", result);


long v = client.Increment(key, 1);
Console.WriteLine("first increment : {0}", v);

string o = client.Get<string>(key);
Console.WriteLine("first read: {0}", o);

v = client.Increment(key, 1);
Console.WriteLine("second increment: {0}", v);

o = client.Get<string>(key);
Console.WriteLine("second read: {0}", o);

结果:

  • 测试删除:真
  • 加真
  • 第一次增量:0
  • 一读:1
  • 第二次增量:0
  • 二读:1

如您所见,增量不起作用。

enyim的配置:

代码语言:javascript
运行
复制
<enyim.com>
  <memcached protocol="Binary">
    <servers>
      <!-- make sure you use the same ordering of nodes in every configuration you have -->
      <add address="memcached-dev1" 
            port="11211" />
    </servers>
    <socketPool minPoolSize="10" 
                maxPoolSize="100" 
                connectionTimeout="00:00:10" 
                deadTimeout="00:02:00" />
  </memcached>
</enyim.com>

我漏掉了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2013-08-31 21:56:14

您不能以这种方式读取计数器的值,因此在Enyim项目(这里)的一个封闭问题中解释了原因。相反,只需将计数器增加0。

代码语言:javascript
运行
复制
var v = cacheClient.Increment(key, 0);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13142056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档