數據模型如下
time typeA valueA
time typeB valueB
此種數據存儲模式跟redis的hash操作類似,key ------ field --------value式的存儲結構,決定採用java進行抽象
key選擇用String類型,field和value採用一個整體,類似於map進行處理,爲了讓map有序輸入,採用LinkedHashMap,最終抽象出來的編碼如下:
import java.util.LinkedHashMap;
import java.util.Map;
@SuppressWarnings({ "rawtypes", "serial" })
public class HashInfo extends LinkedHashMap{
private Map sub = new LinkedHashMap();
/**
* 設置sub.
*
* @param sub 設置HashInfo類型變量 sub
*/
public void setSub(Map sub) {
this.sub = sub;
}
@SuppressWarnings("unchecked")
public synchronized void hset(String key,String hkey,Object value){
sub = (Map) this.get(key);
if(sub == null){
sub = new LinkedHashMap();
}
sub.put(hkey, value);
this.put(key, sub);
}
public synchronized Object hget(String key,String hkey){
Map sub = (Map) this.get(key);
if(sub != null){
return sub.get(hkey);
}
return null;
}
}
測試程序如下:
package util;
public class HashInfoTest {
public static void main(String[] args) {
HashInfo hash = new HashInfo();
hash.hset("key", "field", "value");
System.out.println(hash.hget("key", "field"));
}
}