环境: win10 64位、memcached 1.4.4 64位、EnyimMemcached 2.16.0(ps:2.13.0也有此问题,别的版本就没试了).

EnyimMemcached git源码地址:https://github.com/enyim/EnyimMemcached

事发原因:最近有时间就想着把redis和Memcached的缓存都想一个公共类,好方便随身用,redis很快弄好了,Memcached在网上查貌似EnyimMemcached用的比较多(原来用过Memcached.ClientLibrary,抱着不走回头路的心态直接过滤了,也因为这个许多年没有更新过了.),立马开工,在vs中NuGet搜索安装,直接测试试用,

看里面有三个方法,原来没看那么多,直接用的第二个DateTime,别的也没试,Get获取值时报错,提示没有实例化(实例化不就是没值么),于是看赋值那里,结果提示返回的是true,赋值成功,但就是取值报错,折腾了一上午,查说改配置什么的都没用,用命令行赋值却又能成功,很无奈 ⊙﹏⊙.

后面无意中用了下TimeSpan,却成功了.(原来根本没想过会是参数原因!).于是就有了上面找源码。

看代码没什么不同,就MemcachedClient.GetExpiration这两个重载不一样,继续看GetExpiration方法

看返回结果都是uint类型,结果DateTime参数中是这样返回uint类型的:uint retval = (uint)(expiresAt.ToUniversalTime() - UnixEpoch).TotalSeconds;

这不是返回时间戳嘛,TimeSpan参数返回的就是分钟数了,想不通了,同样返回调用的一个是时间戳一个是分钟数,这不是瞎搞吗。

遂改为下面得分钟的:uint retval = (uint)(expiresAt - DateTime.Now).TotalSeconds;

ok,编译下把dll加载到自己项目中,使用DateTime参数的运行赋值取值成功!

EnyimMemcached中用DateTime参数设置过期后赋值有问题的解决.的更多相关文章

  1. css中hover设置边框后div中内容后移解决方法

    <style> .demo{width:1200px;height:400px;background:#fff;} .demo:hover{border:1px solid #cecece ...

  2. redis string类型设置过期时间后 再进行set操作,会清除过期时间

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_41756437/article/d ...

  3. C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

    原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法 本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时, ...

  4. Java虚拟机参数设置(转)

    今天在加载一幅图片时,eclipse报出如下错误: “Exception in thread "main" java.lang.OutOfMemoryError: Java hea ...

  5. Direcshow中视频捕捉和参数设置报告

    Direcshow中视频捕捉和参数设置报告 1.      关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...

  6. (转)x264的一些参数设置对编码效率的影响

    转自:http://www.cnblogs.com/wainiwann/p/5647521.html i_luma_deadzone[0]和i_luma_deadzone[1]分别对应inter和in ...

  7. pycharm启动慢 –xms -xmx相关参数设置

    Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) sp ...

  8. Eclipse启动参数设置

    Eclipse启动参数设置 文件路径:安装目录根路径/eclipse.ini 参数注解: [-debug options -vm javaw.exe] 显示JVM当前内存使用量(注:详见下方<让 ...

  9. java jvm内存管理/gc策略/参数设置

    1. JVM内存管理:深入垃圾收集器与内存分配策略 http://www.iteye.com/topic/802638 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想 ...

随机推荐

  1. sibling

    sibling 英 ['sɪblɪŋ] 美 ['sɪblɪŋ] 名词. 兄,弟,姐,妹网络. 兄弟,兄弟姐妹,同胞变形. 复数:siblings

  2. 【校招面试 之 C/C++】第3题 为什么要内存对齐?以及内存对齐的方式

    1.为什么要进行内存对? 参考:https://blog.csdn.net/a369000753/article/details/51188915 所谓内存对齐,是为了让内存存取更有效率而采用的一种编 ...

  3. Mysql优化性能优化21条

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  4. docker搭建nginx

    在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过端口访问默认的网站 设置记录访问和错误日志的路径 以交互模式创建centos容器,如果本地没有镜像,会从仓库获取, 等待即可 ...

  5. [ERROR] Failed to contact master at [localhost:11311]. Retrying...

    [ERROR] [1446531999.044935824]: [registerPublisher] Failed to contact master at [localhost:11311]. R ...

  6. Castle ActiveRecord学习(四)延迟加载、分页查询、where条件

    一.延迟加载 //用户发布的主题,一对多:Table:外键表:ColumnKey:外键:Lazy:延迟加载:Cascade:级联操作(级联删除) [HasMany(typeof(ThemeInfo), ...

  7. Linux xxd命令

    一.简介 xxd 命令用于使用二进制或十六进制格式显示文件内容,可以将指定文件或标准输入以十六进制转储,也可以把十六进制转储转换成原来的二进制形式. 二.选项 http://www.cnblogs.c ...

  8. Java WebService 知识点汇总

    java webservice 获取传入IP axis.jar    servlet.jar MessageContext mMsgContext = MessageContext.getCurren ...

  9. DICOM

    DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052).它定义了质量能满足 ...

  10. [SoapUI] Datasink怎么显示每次循环的结果

    https://www.soapui.org/reporting/the-report-datasink.html