地図は、バッファとして動作します

  1つの パブリック クラスMapCacheに{
   2  
  3。     / ** 
  4。      * 1024、デフォルトのキャッシュメモリ
   5。      * / 
  6。     プライベート 静的 最終 int型 DEFAULT_CACHES = 1024 ;
   7  
  。8      プライベート 静的 最終 MapCacheにINS = 新しい新しいMapCacheに();
   9  
10      パブリック 静的MapCacheにSINGLE() {
 11          リターンINS;
 12である     }
 13である 
14      / ** 
15       *バッファ容器は、
 16       * / 
17      プライベート 静的マップは、<文字列は、CacheObject> cachePool;
 18である 
19。     公衆MapCacheに(){
 20は         、この(DEFAULT_CACHES);
 21である     }
 22が 
23である     公共 MapCacheに(int型cacheCount){
 24          cachePool = 新しい新規のConcurrentHashMapの(cacheCount);
 25      }
 26である 
27      / ** 
28       *バッファリード
 29       *
 30       * @param キーキャッシュのキー
 31である      * @param <T>
 32       * @return
33       * / 
34      公共の 静的 <T> T得る(文字列キー){
 35          CacheObject cacheObject = cachePool.get(キー)。
36          であればNULL!= cacheObject){
 37              長い CUR =にSystem.currentTimeMillis()/ 1000 38              であれば(cacheObject.getExpired()<= 0 || cacheObject.getExpired()> CUR){
 39                  オブジェクト結果= cacheObject.getValue()。
40                  リターン(T)をもたらします。
41              }
 42          }
 43          リターン NULL ;
 44である     }
 45  
46である     / ** 
47       キャッシュ・ハッシュ・タイプ読み取る*
 48       *
 49       * @param キーキャッシュキー
 50       * @param フィールドキャッシュフィールド
 51である      * @param <T>
 52である      * @return 
53である      * / 
54である     公共 < T> T hget(文字キー、文字列フィールド){
 55          キー=キー+ ":" + フィールド、
 56は         戻り 、このに.get(キー)
 57である     }
 58  
59      / **
60       *バッファ提供さ
 61である      *
 62である      * @param 主キーキャッシュ
 63である      * @paramの値バッファ値
 64       * / 
65      公共 静的 ボイドSET(文字列キー、オブジェクト値){
 66          INS.set(キー、値、-1 )。
 67      }
 68  
69      / * 
70       *キャッシュと有効期限を設定し、
 71である      *
 72       * @param キーキャッシュのキー
 73である      * @paramの値バッファ値
 74       * @param期限切れの有効期限、秒
 75       * / 
76      公共 のボイド SET(文字列のキーは、オブジェクトの値は、ロング{期限切れ)
 77          => 0にSystem.currentTimeMillisを(期限切れ期限切れ)/ 1000 +?期限切れ:有効期限が切れ;
 78          CacheObject cacheObject = 新しい新しいCacheObject (キー、値、期限切れ);
 79          cachePool.put(キー、cacheObject);
 80      }
 81  
82      / ** 
83       *ハッシュバッファ設け
 84       *
 85       * @param キーキャッシュキー
 86の      * @paramのフィールドバッファフィールド
87       * @paramの値バッファ値
 88       * / 
89      公共 ボイドHSET(文字列キー、フィールド文字列オブジェクトの値){
 90          この .hset(キー、フィールド、値、-1 );
 91である     }
 92  
93      / ** 
94       *セットとを有するハッシュ・キャッシュの有効期限
 95       *
 96       * @param キーキャッシュキー
 97       * @param フィールドキャッシュ項目
 98       * @paramの値バッファ値
 99       * @paramが有効期限を満了し、秒間
 100       * /
101      公衆 ボイド HSET(文字列キー、文字列フィールド、オブジェクトの値は、長い期限切れ){
 102          キー=キー+「:」+ フィールド。
103          期限切れ=>は0の期限が切れ?System.currentTimeMillis()/ 1000 + 期限切れ:有効期限が切れ;
104は          CacheObject cacheObject = 新しいCacheObject(キー、値、期限切れ)。
105          cachePool.put(キー、cacheObject)。
106      }
 107  
108      / ** 
109       *根据キー删除缓存
 110       *
 111       * @paramのキー缓存キー
 112       * / 
113     パブリック 静的 ボイドデル(文字列キー){
 114          cachePool.remove(キー);
 115      }
 116  
117      / ** 
1 18       *キーフィールドとキャッシュ削除
 119       *
 120       * @param キーキャッシュキー
 121       * @paramのフィールドバッファフィールド
 122       * / 
123      公共 ボイドHDEL(文字キー、文字列フィールド){
 124          キー+キー= ":" + フィールドと、
 125          れる.del(KEY);
 126      }
 127  
128      / ** 
129      *清空缓存
 130       * / 
131      公共 ボイドクリーン(){
 132          cachePool.clear()。
133      }
 134  
135      静的 クラスCacheObject {
 136          プライベート文字列キー。
137          プライベートオブジェクトの値。
138          プライベート ロングは有効期限が切れ;
139  
140          公共 CacheObject(文字列キー、オブジェクトの値は、長い期限切れ){
 141              この .KEY = キー。
142              この .VALUE = 値。
143              .expired = 有効期限が切れ;
144          }
 145  
146          公共の文字列のgetKey(){
 147              リターンキー。
148          }
 149  
150          パブリックオブジェクトのgetValue(){
 151              戻り値;
152          }
 153  
154          公衆 ロングgetExpired(){
 155              リターンが期限切れ。
156          }
 157      }
 158 }

します。https://blog.csdn.net/xsj_blog/article/details/83056143で転載

おすすめ

転載: www.cnblogs.com/wsycoo/p/12058032.html