【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を採用し、最終的に抽象化された符号化は以下の通りである.
テスト手順は次のとおりです.
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"));
}
}