月掛夜中央

          懶惰程序員

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

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

          前幾天在做一個(gè)涉及到memcache的項(xiàng)目,使用XmemcachedClient來操作memcache,由于是一個(gè)季度的數(shù)據(jù),保存數(shù)據(jù)時(shí)這樣的
           memcachedClient.set(key, expiredTime, value)
          其中設(shè)置了過期時(shí)間為90天
          int cacheExpireTime = 60*60*24*90;
          結(jié)果就杯具了,保存后用get方法取時(shí)都是null;后來無意中把過期時(shí)間改成小于30天,就完全沒有問題,經(jīng)過谷歌大神的幫忙,終于發(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) {                       // 超過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 {                                                                   // 不超過30天,是相對(duì)時(shí)間
                        return (rel_time_t)(exptime + current_time);       // exptime + (tvsec - process_started)
                 }

          }
          原來超過30天就自動(dòng)轉(zhuǎn)換成絕對(duì)時(shí)間,和進(jìn)程啟動(dòng)時(shí)間比較,顯然60*60*24*90小于啟動(dòng)日期的絕對(duì)數(shù),所以對(duì)象一存入就過期了,肯定取不到數(shù)據(jù)。
          具體的問題請(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)  編輯  收藏 所屬分類: java咖啡杯

          主站蜘蛛池模板: 中方县| 霞浦县| 渝中区| 滨海县| 娄底市| 合作市| 太白县| 涞水县| 尼玛县| 永丰县| 莒南县| 类乌齐县| 宁城县| 增城市| 天峻县| 滨海县| 灵璧县| 锡林郭勒盟| 洮南市| 寿宁县| 永安市| 故城县| 即墨市| 南平市| 东港市| 霍山县| 杭锦旗| 泾阳县| 怀宁县| 盘山县| 镇远县| 岱山县| 新乐市| 雷州市| 蒙城县| 黄石市| 陇西县| 德清县| 遂溪县| 荣昌县| 怀来县|