1
var config = new MemcachedClientConfiguration();
config.Protocol = MemcachedProtocol.Binary;
config.AddServer(server[0],int.Parse(server[1]));


var mc = new MemcachedClient(config);

var finish = mc.Store(StoreMode.Set, key, value,TimeSpan.FromSeconds((double)60000));
if(finish)
{
var obj=mc.Get(key);
Debug.Assert(obj==null,"obj is null.")
}

结果(obj)总是返回null,为什么?

如果 expire 设置为 TimeSpan.MaxValue 就可以了。

4

1 回答 1

0

代码看起来不错。我已经为此进行了测试,它通过了

     [Test]
     public void Should_get_object()
     {
        const string key = "1";
        const string value = "6";
        var mc = new MemcachedClient();

        var finish = mc.Store(Enyim.Caching.Memcached.StoreMode.Set, 
                              key, value, TimeSpan.FromSeconds((double)60000));

         if(finish)
         {
            var obj=mc.Get(key);
            Assert.That(obj!=null,"obj is null.");
         }
    }

因此我怀疑配置,这是我用来比较的配置

<enyim.com>
    <memcached>
      <servers>
        <add address="127.0.0.1" port="11211"/>
      </servers>
      <socketPool minPoolSize="10" maxPoolSize="100" 
                  connectionTimeout="00:00:10" deadTimeout="00:02:00"/>
    </memcached>
  </enyim.com>
于 2012-10-03T13:04:18.620 回答