EnyimMemcached中用DateTime参数设置过期后赋值有问题的解决.
环境: 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参数设置过期后赋值有问题的解决.的更多相关文章
- css中hover设置边框后div中内容后移解决方法
<style> .demo{width:1200px;height:400px;background:#fff;} .demo:hover{border:1px solid #cecece ...
- redis string类型设置过期时间后 再进行set操作,会清除过期时间
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_41756437/article/d ...
- C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法
原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法 本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时, ...
- Java虚拟机参数设置(转)
今天在加载一幅图片时,eclipse报出如下错误: “Exception in thread "main" java.lang.OutOfMemoryError: Java hea ...
- Direcshow中视频捕捉和参数设置报告
Direcshow中视频捕捉和参数设置报告 1. 关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...
- (转)x264的一些参数设置对编码效率的影响
转自:http://www.cnblogs.com/wainiwann/p/5647521.html i_luma_deadzone[0]和i_luma_deadzone[1]分别对应inter和in ...
- pycharm启动慢 –xms -xmx相关参数设置
Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) sp ...
- Eclipse启动参数设置
Eclipse启动参数设置 文件路径:安装目录根路径/eclipse.ini 参数注解: [-debug options -vm javaw.exe] 显示JVM当前内存使用量(注:详见下方<让 ...
- java jvm内存管理/gc策略/参数设置
1. JVM内存管理:深入垃圾收集器与内存分配策略 http://www.iteye.com/topic/802638 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想 ...
随机推荐
- 不同的路径12障碍物 · Unique Paths12
[抄题]: 有一个机器人的位于一个 m × n 个网格左上角. 机器人每一时刻只能向下或者向右移动一步.机器人试图达到网格的右下角. 问有多少条不同的路径? [思维问题]: 以为要用count来计数: ...
- 最高频的K个单词 · Top K Frequent Words
[抄题]: 给一个单词列表,求出这个列表中出现频次最高的K个单词. [思维问题]: 以为已经放进pq里就不能改了.其实可以改,利用每次取出的都是顶上的最小值就行了.(性质) 不知道怎么处理k个之外的数 ...
- 创建HTML元素的方法
第一种:使用 parent.appendchild()方法 HTML页面 <div id="div1"></div> JS文件 //第一步创建标签元素节点 ...
- dede添加自定义函数
在dede安装目录下的include/extend.func.php添加自定义函数: /** * 获取文章第一张图片 */ function getFirstImg($arcId) { global ...
- VC小笔记
1.strcpy不需要指定的长度,遇到被复制字符的串结束符’\0’才结束,容易溢出 2.memcpy(k, s, strlen(s)*sizeof(char)+1); // strlen(s) 后 + ...
- 面向对象设计模式纵横谈:Builder 生成器模式(笔记记录)
Builder模式的缘起 假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分要富于变化. 如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正…… 动 ...
- inux中Vi不能高亮显示行号的解决办法
适用版本:CentOS,RedHat,UBUNTU,Fedora解决办法如下: 在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc 在Fedora中vim的配置文件存 ...
- 2018.06.30 cdq分治
#cdq分治 ##一种奇妙的分治方法 优点:可以顶替复杂的高级数据结构:常数比较小. 缺点:必须离线操作. CDQ分治的基本思想十分简单.如下: 我们要解决一系列问题,包含修改和查询操作,我们将这些问 ...
- 2018.09.10 bzoj1855: [Scoi2010]股票交易(单调队列优化dp)
传送门 单调队列优化dp好题. 有一个很明显的状态设置是f[i][j]表示前i天完剩下了j分股票的最优值. 显然f[i][j]可以从f[i-w-1][k]转移过来. 方程很好推啊. 对于j<kj ...
- hdu-1131(卡特兰数+大数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1131 思路:R(x)=h(x)*n!=C(n,2*n)*n!=A(n+2,n*2); #include ...