月掛夜中央

          懶惰程序員

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          使用XmemcachedClient設(shè)置緩存對(duì)象過(guò)期時(shí)間的問(wèn)題

          前幾天在做一個(gè)涉及到memcache的項(xiàng)目,使用XmemcachedClient來(lái)操作memcache,由于是一個(gè)季度的數(shù)據(jù),保存數(shù)據(jù)時(shí)這樣的
           memcachedClient.set(key, expiredTime, value)
          其中設(shè)置了過(guò)期時(shí)間為90天
          int cacheExpireTime = 60*60*24*90;
          結(jié)果就杯具了,保存后用get方法取時(shí)都是null;后來(lái)無(wú)意中把過(guò)期時(shí)間改成小于30天,就完全沒(méi)有問(wèn)題,經(jīng)過(guò)谷歌大神的幫忙,終于發(fā)現(xiàn)了原因。
          服務(wù)端的處理
          時(shí)間處理源代碼【memcached.c】如下:
          #define REALTIME_MAXDELTA 
          60*60*24*30                     // 定義30天的秒數(shù)
          static rel_time_t realtime(const time_t exptime) {
                 
          if (exptime == 0return 0;
                 
          if (exptime > REALTIME_MAXDELTA) {                       // 超過(guò)30天,是絕對(duì)時(shí)間
                        if (exptime <= process_started)                         // 小于進(jìn)程啟動(dòng)日期
                                return (rel_time_t)1;                                  //
                        return (rel_time_t)(exptime - process_started);   // 返回進(jìn)程啟動(dòng)之后的時(shí)間差
                 }
           else {                                                                   // 不超過(guò)30天,是相對(duì)時(shí)間
                        return (rel_time_t)(exptime + current_time);       // exptime + (tvsec - process_started)
                 }

          }
          原來(lái)超過(guò)30天就自動(dòng)轉(zhuǎn)換成絕對(duì)時(shí)間,和進(jìn)程啟動(dòng)時(shí)間比較,顯然60*60*24*90小于啟動(dòng)日期的絕對(duì)數(shù),所以對(duì)象一存入就過(guò)期了,肯定取不到數(shù)據(jù)。
          具體的問(wèn)題請(qǐng)圍觀這篇文章:http://blog.sina.com.cn/s/blog_539d361e0100nc9h.html。

          我的微博 http://t.sina.com.cn/1401900445

          posted on 2011-01-21 16:18 月掛夜中央 閱讀(4918) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java咖啡杯

          主站蜘蛛池模板: 台北县| 清新县| 万州区| 泰顺县| 张家口市| 霍邱县| 比如县| 汤原县| 大冶市| 宜兰市| 德清县| 法库县| 隆子县| 鸡泽县| 浙江省| 抚州市| 南康市| 新安县| 丰顺县| 新野县| 寻乌县| 徐汇区| 衡水市| 文水县| 吉木萨尔县| 遂平县| 石楼县| 揭东县| 辽阳县| 维西| 四川省| 蓬莱市| 石柱| 宜春市| 达州市| 屏东县| 徐闻县| 紫云| 浑源县| 长宁县| 平武县|