Membercache缓存过期时间不同导致set成功,get失败怪异问题

xiaoweigogo 2014-03-26 10:42:04
最近项目中用到缓存,过期时间不同遇到set成功,get失败问题,请高手解答,小弟感激不尽,下面为过期时间不同所做的4个测试用例,key都是MD5加密的
测试1:

string emailStep1TimeKey1 = Common.GetMd5Hash(account.UserId + email + "SafeEmailStep1");
codeCache.Delete(emailStep1TimeKey1);
DateTime dt1 = DateTime.Now.AddSeconds(350);
bool b = codeCache.Set(emailStep1TimeKey1, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), dt1);
object c = codeCache.Get(emailStep1TimeKey1);

测试1过期时间设为350秒,b为true,c为2014-03-26 10:19:53
测试2:

string emailStep1TimeKey2 = Common.GetMd5Hash(account.UserId + email + "SafeEmailStep2");
codeCache.Delete(emailStep1TimeKey2);
DateTime dt2 = DateTime.Now.AddSeconds(339);
bool b1 = codeCache.Set(emailStep1TimeKey2, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), dt2);
object c1 = codeCache.Get(emailStep1TimeKey2);

测试2过期时间为339秒,b1为true,c1为null
测试3:

string emailStep1TimeKey3 = Common.GetMd5Hash(account.UserId + email + "SafeEmailStep3");
codeCache.Delete(emailStep1TimeKey3);
DateTime dt3 = DateTime.Now.AddMinutes(10);
bool b2 = codeCache.Set(emailStep1TimeKey3, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), dt3);
object c2 = codeCache.Get(emailStep1TimeKey3);

测试3过期时间为10分钟,b2为true,c2为2014-03-26 10:20:46
测试4:

string emailStep1TimeKey4 = Common.GetMd5Hash(account.UserId + email + "SafeEmailStep4");
codeCache.Delete(emailStep1TimeKey4);
DateTime dt4 = DateTime.Now.AddMinutes(5);
bool b3 = codeCache.Set(emailStep1TimeKey4, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), dt4);
object c3 = codeCache.Get(emailStep1TimeKey4);

测试4过期时间为5分钟,b3为true,c3为null
...全文
275 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2015-06-10
  • 打赏
  • 举报
回复
都一年的坑了
chenwei175528 2015-06-10
  • 打赏
  • 举报
回复
这个怎么解决?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧