java实现类似与redis的hash存储操作
2016-01-29 14:00
676 查看
最近做一个报表系统,统计全天的指定时间的数据,数据又分了好几类,数据模型如下
time typeA valueA
time typeB valueB
联想到此种数据存储模式跟redis的hash操作类似,key ------ field --------value式的存储结构,决定采用java进行抽象
key选择用String类型,field和value采用一个整体,类似于map进行处理,为了让map有序输入,采用LinkedHashMap,最终抽象出来的编码如下:
测试程序如下:
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; /** * ClassName:HashInfo * Function: TODO ADD FUNCTION. * Reason: TODO ADD REASON. * Date: 2016年1月23日 下午3:40:58 * @author ygwu * @version v1.0 * @see */ @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; } }
测试程序如下:
/** * Project Name:ucardynpriceweb * File Name:HashInfoTest.java * Package Name:com.zuche.pricing.report.util * Date:2016年1月29日下午1:58:13 * Copyright (c) 2016, ygwu@10101111.com|yg.wu02@zuche.com All Rights Reserved. * */ package com.zuche.pricing.report.util; /** * ClassName:HashInfoTest * Function: TODO ADD FUNCTION. * Reason: TODO ADD REASON. * Date: 2016年1月29日 下午1:58:13 * @author ygwu * @version v1.0 * @see */ 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")); } }
相关文章推荐
- 10016---Redis--简介
- redis对于key的操作命令
- redis安装与配置文件详解
- 13. redis 高级:Java客户端
- 12. redis 高级:redis 常用配置
- 10. redis 高级:事务&&发布订阅
- 11. redis 高级:安全&&主从复制
- 08. redis 常用命令
- 09. redis 高级:持久化(RDB && AOF)
- 06. redis 数据类型之Set
- 07. redis 数据类型之Zset
- 04. redis 数据类型之Hash
- 05. redis 数据类型之List
- 02. redis 数据类型简介
- 03. redis 数据类型之String
- 01. redis 简介&&安装
- codis2中codis-server对原redis 修改部分(增加若干指令)
- Redis+Mysql模式和内存+硬盘模式的异同及redis的应用场景——转载
- 关于Redis中的Replication
- Redis-分片