在IDEAL下執行測試Memcached快取資料功能的時候,快取時間過期之坑

fiwlks發表於2017-01-12

環境資訊:
1、 一臺執行win7 64位系統機器(本機), 安裝ideal 14的IDE, 具有JDK1.8和JDK1.6
2、一臺memcached伺服器,linux suse 64位系統, JDK1.6

問題詳情:
用JAVA程式碼Memcached快取資料,不管是通過set(key, value, seconds)還是set(key, value, expirationDate)方式都有問題(要麼一設定就返回null,要不就是一直有返回資料),但是通過telnet方式連線memcached伺服器,然後對快取資料設定時間都是OK的。
程式碼中我測試過程如下(T0我這邊測試大概是1000秒):
1、當設定的時間是(當前時間t + 常量T0)之前,set完然後去取快取,發現返回是null
2、當設定的時間是(當前時間t + 常量T0)之後,set完然後去取快取,第2天去取發現還是有資料

分析:
1、 是不是我本機ideal環境下的系統時間和memcached伺服器系統時間有差導致的
2、 是不是程式碼中關於memcached有設定相關項或者啟動memcached需要指定什麼引數

結論:
我發現分析1中系統時間都沒有差別,然後我檢視memcached文件以及網上資源,也沒發現有相關引數,百思不得其解,後面工具開啟memcached相關類的時候,發現IDE是jdk1.8編譯出來的,去設定了一下ideal的編譯環境資訊,然後意外發現測試都OK了
但是對事情緣由,我這邊還是不太明白,有知道的朋友還望告知一下!

相關文章