首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Enyim Memcached客户端在传递过期参数时不起作用

Enyim Memcached客户端在传递过期参数时不起作用
EN

Stack Overflow用户
提问于 2011-07-28 12:02:24
回答 6查看 5.9K关注 0票数 3

当使用Enyim memcached客户端存储具有过期时间跨度的数据时,我发现它不起作用。有人能帮上忙吗?

在我的测试代码中,我存储了具有10分钟过期时间的日期,并尝试立即从缓存中获取它,但得到了一个空对象。

代码语言:javascript
复制
Enyim.Caching.MemcachedClient client = new Enyim.Caching.MemcachedClient();
client.Store(Enyim.Caching.Memcached.StoreMode.Set, "one", 1, new TimeSpan(0, 10, 0));

object obj;
client.TryGet("one", out obj); // obj == null

Assert.AreNotEqual(null, obj); // this will fail
EN

回答 6

Stack Overflow用户

发布于 2011-12-09 03:39:28

我不确定您的示例是否含糊,或者您是否真的在使用对象类型,但我在使用自定义对象时也遇到了同样的问题。整数、字符串等可以很好地工作,但我的自定义对象一放到缓存中就总是空的。原来我的对象上没有Serializable属性。一旦我把它放在那里,一切都像预期的那样工作。

票数 3
EN

Stack Overflow用户

发布于 2012-10-04 00:19:02

海辛瑟斯在他的问题上相当精确,答案有点不相干。我只有在设置过期时间时才会遇到同样的问题,无论是作为Timespan还是作为DateTime。

在Enyim的github https://github.com/enyim/EnyimMemcached/issues/110上也有一个问题

我们公司的代码库有一个调整过的版本,但它已经过时了。当我找到时间时,我会尝试找到修复并返回到这个位置,并向Enyim发送一个拉取请求。

编辑:我还在github上找到了this

我可以确认,在memcached服务器的其他版本中不会发生这种情况。我认为这是这个特定构建的错误:使用这个问题构建:没有这个问题的http://www.urielkatz.com/archive/detail/memcached-64-bit-windows构建:http://blog.elijaa.org/index.php?post/2010/08/25/Memcached-1.4.5-for-Windows

想检查一下您正在使用的服务器版本吗?我最初的评论仍然有效,因为我使用两个不同的dll运行测试,调整后的dll可以工作,而CouchBase附带的dll失败了。

票数 2
EN

Stack Overflow用户

发布于 2012-10-06 16:59:01

请检查您的服务器。

1.使用MemCacheD Manager

2.使用telnet 127.0.0.1 11211(更改您的服务器设置)

类型:stats

它会显示你的统计数据。

请参阅“时间”项统计信息。

它是第二种格式,你必须转换它,

你可以简单地用"1262517674“来比较,

如果小于"1262517674",那么你的memcached服务器太旧了。

请升级或更改您的memcached版本。

否则,只需更改memcached版本即可

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6853958

复制
相关文章

相似问题

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