【Java】實現類似與redis的hash存儲操作(key ------ field --------value)

數據模型如下
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"));
	}
 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章