HashMap如何设计缓存大数据

场景:
1. 表A的数据每月刷新一次,数据量较大,主要通过外部excel导入;
2. 获取表B的数据和表A数据按照一定的条件规则进行比对;
3. 再将符合条件的比对结果存入表C。

问:
如何设计缓存表数据,使查询更高效。谢谢

0

1个回答

0
weixin_43630445
杜少陵
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
HashMap实现简单的缓存Cache
真实项目中,如果并发访问量多,必然对项目的性能有所要求,也自然而然的用到缓存机制,当下针对Java已经有成熟的和优秀的缓存框架Ehcache、Jboss cache等等。今天呢,我就想用咱们jdk自带的HashMap来实现简单的缓存。 项目需求:       用户查到数据,查询条件相同时,第一次走数据库,第二次以后再一段时间内走缓存,提高响应的速度 涉及的知识:     线程池
HashMap缓存 Java实现
一般是采用HashMap来作为缓存的存储结构,但Java没有全局变量的概念,怎么保证缓存中的数据不被垃圾回收器收集,而造成数据的丢失呢?         请问一般的缓存是怎样保证数据的独立性(即脱离垃圾回收器)的?   做一个判断,HashMap取不到值就到数据库里再读数据   系统第一次起来,或是第一次取数据后将数据     保存在一个static的Map里即可,凡是缓存的东...
大数据缓存管理系统设计与实现
大数据缓存管理系统系统介绍:系统结构:此套系统为分布式系统业务处理系统: 数据支持系统: 系统采用的技术:zookeeper,memcached,activitymq消息中间件,webservice,springmvc,mybatis,boostrap设计思路:这套解决方案做了对memcached的集群,以及一致性hash解决数据冗余,对高并发提供了支持;通过zookeeper对activitym...
使用HashMap实现缓存
本类开发中 欢迎拍砖 重伤我者 必须答谢!   实现:   package creative.air.datastructure.map; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import jav...
用hashmap实现自己的缓存
@SuppressWarnings({"unchecked", "rawtypes"})public class DefaultCache implements Cache { private Map cache = new HashMap(); private DefaultCache() { } public static DefaultCache getInstance() { re...
用hashmap来模拟缓存实现的机制
一 代码 package com.hsp.view; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MyCache { //使用map来模拟缓存 static Map maps=new Hash
HASHMAP缓存.txt
HASHMAP缓存.txt HASHMAP缓存.txt
使用WeakHashMap创建具有过期时间的本地缓存
java中为了让程序员能参与到垃圾回收机制中(不是说java的GC是全自动的吗?这要看从哪个方面讲了,其实如果开发人员能熟练掌握java的gc原理,对提升系统的稳定性有极大帮助),设计了4种引用级别:分别是强引用(new 出来的)、软引用、弱引用和虚引用。 本文不打算介绍这几种引用的用法。还不了解它们的读者可以自行百度(国内的几个搜索引擎,还是百度 最适合程序员)。 不过如果能使用谷歌的还是要...
HASHMAP缓存简单java实现
一般是采用HashMap来作为缓存的存储结构,但Java没有全局变量的概念,怎么保证缓存中的数据不被垃圾回收器收集,而造成数据的丢失呢?         请问一般的缓存是怎样保证数据的独立性(即脱离垃圾回收器)的?   做一个判断,HashMap取不到值就到数据库里
Java学习:ConcurrentHashMap实现一个本地缓存
文章来源: https://www.cnblogs.com/parryyang/p/5779984.html 本片文章不考虑效率问题,可以当做用来学习ConcurrentHashMap。 ConcurrentHashMap融合了Hashtable和HashMap二者的优势。Hashtable是做了线程同步,HashMap未考虑同步。所以HashMap在单线程下效率较高,Has...
关于采用HashMap作为本地缓存遇到的问题
最近在做一个的项目,我所要完成的部分是对数据的清洗操作,当收到一条记录时,对记录做相应的适配,然后将适配后的数据返回。做适配就是要与之前的数据进行对比,所以需要对之前的数据做一个缓存,初步考虑用HashMap来进行缓存数据。因为我们的数据量是比较大的,一天大概是2亿条记录,一条记录是36个字段,字段之间用特殊的分隔符隔开。程序中使用了多线程,但是由于我对HashMap操作时,没有使用同步,导致CP
基于Java使用HashMap实现数据的缓存
1.最近任务需要将数据进行不断比较并输出数据,数据是多条,利用HashMap和List结合实现数据缓存。 代码如下: public class MapTest { private static HashMap<String,List<String>> mapSave = new HashMap<>(); public static void ...
大数据之(一)——缓存处理
缓存就是数据交换的缓冲区,当应用程序需要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话再从内存中找。由于缓存的运行速度比内存快得多,所以使用缓存就大大提高了数据查找的效率。 缓存可以视为主数据的缩影,是内存中少部分数据的复制品
基于Java使用HashMap<String,List<String>>实现数据的缓存
1.最近任务需要将数据进行不断比较并输出数据,数据是多条,利用HashMap和List结合实现数据缓存。 代码如下: public class MapTest { public class MapTest { private static HashMapList> mapSave = new HashMap<>(); public static void main(Str
使用map做定时缓存
今天做需求发现得使用缓存,但是这个项目里面没引入redis等,又不想麻烦引入所以就使用map作为缓存使用,便记录下来,也许对大家有需要。首先定义一些所需要的变量等作为Map的key: //用于缓冲数据Map private HashMap&amp;lt;String, Object&amp;gt; cacheMap = new HashMap&amp;lt;String, Object&amp;gt;(); //时间key ...
* java版HashMap,大数据量时效率很低,建议1000条数据以下使用
/*  * java版HashMap,大数据量时效率很低,建议1000条数据以下使用  */ function HashMap(){         var DEFAULT_CAPACITY=16;     var MAX_CAPACITY=2147483647;     var DEFAULT_LOAD_FACTOR=0.75;     /************ splitl
JAVA实现HASHMAP缓存 并定时清理
背景:需要记录小程序用户登陆的sessionid并与其openid关联,定时清除 核心代码实现 总体思路:使用ConcurrentHashMap去存缓存的对象,PriorityBlockingQueue去优化弹出(定时移除,按失效时间排序),ScheduledExecutorService去定期执行移除,初始化时调用单例对象的initial()方法 import java.text.Decima...
HashMap 、ehcache 与 redis 在程序缓存上的用处和区别
ehcache 当做map用 ehcache 比 redis 要快 ehcache 与java 自带map的速度差不多 ,没有比较的意义 如果不考虑 map的大小 和本地备份 只要用map, 但很多时候我们不得不考虑宕机造成的系统影响 所以 我们会用可以持久化的ehcache 代替map, 如果我们的程序比较大,用到了分布式,这时候最好引入redis 做缓存的异地备份,甚至可以利用redis的灵...
hashmap实现的缓存
1 读写分离。就是对于读取这个动作来说,可以同时有多个线程同 * 时去读取这个资源,但是对于写这个动作来说,只能同时有一个线程来操作 2 ReentrantReadWriteLock 适用于读多写少的场景 不允许读写同时存在 3 ReentrantReadWriteLock是在重入锁ReentrantLock基础上的一大改造,其通过在重入锁上维护一个读锁一个写锁实现的。对于ReentrantL...
LinkedHashMap实现本地缓存
【--亲测有效--】 转载出处:https://coderxing.gitbooks.io/architecture-evolution/di-er-pian-ff1a-feng-kuang-yuan-shi-ren/42-xing-neng-zhi-ben-di-huan-cun/421-ying-yong-ceng-ben-di-huan-cun/4211.html 在 Java 中使用本...
HashMapUtil java项目中缓存的使用
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; public class HashMapCacheManager { private static HashMap cacheMap = new HashMap(); // 单实例构造方法 private HashMap
Java Cache 的HashMap实现, 适用场景及分布式ehcache实例
  cache是老生常谈的事情,这里我想强调一下KISS原则,就是keep it simple and stupid。最近看到很多场景下cache使用的不适当,特别是被过度使用了。一个简单键值存储并不需要复杂的cache方案,好的方案就是用最简单的方法解决问题。简洁是美!   一个标准Cache的主要特征是: 过期时间        容量规划(重要) 清除策略(重要) 命中率统计  ...
HashMap与ConcurrentHashMap的内存占用与get操作性能比较
一、测试背景         项目中需要提供一个单机计算视频相似度的服务,计算的方式是对视频标题进行分词,提取关键词,然后通过word2vec的方式对关键词进行embedding,最后通过向量累加得到视频的词向量,然后通过某种相似度算法(比如欧式距离)得到视频相似度。这个服务要求5ms返回,可行性预研阶段需要估算响应时间能否达到要求,需要多少台机器支撑每天50亿的请求量。这里面有两个关键内容需要
大数据成神之路-Java高级特性增强(HashMap)
请戳GitHub原文: github.com/wangzhiwubi… 大数据成神之路系列: 请戳GitHub原文: github.com/wangzhiwubi… Java高级特性增强-集合 Java高级特性增强-多线程 Java高级特性增强-Synchronized Java高级特性增强-volatile Java高级特性增强-并发集合框架 Java高级特性增强-分布式 Java高级特性增...
HashMap作为缓存时的性能优化及与redis,EhCache等的应用比较
系统中在用hashmap作为缓存,所以不得不考虑一些因素:多线程并发,最大容量,性能,以及与redis,EhCache等的优劣比较 1、容量的问题: 源码中,HashMap的最大容量为1 2、多线程并发的问题 HashMap本身不是线程安全的,因此不能用于多线程并发,因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,但是java中提供了一个Con
基于Redis简易缓存对象存储设计
最近项目中需要使用redis做数据缓存,主要是存储业务必须对象,为了提高性能就简要设计了下简易缓存,封装到jar包方便重用。具体实现思路如下图Redis存储在内存,读取性能好,但是不能存放太大数据,单个key数据太大,在大流量高并发情况下会打爆网卡,使用redis缓存时候数据量较大一定要谨慎。 Redis缓存实现流程 内部代码实现思路 ...
通过解析HashMap方法理解Android缓存机制——LruCache
关于Android的三级缓存,其中主要的就是内存缓存和硬盘缓存。这两种缓存机制的实现都应用到了LruCache算法,今天我们就从使用到源码解析,来彻底理解Android中的缓存机制。一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存...
Java | ConcurrentHashMap 实现缓存类(阿里面试题)
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I...
Java开发大数据方向面试题之-栈队列和hashMap
1.栈(stack)和队列(queue)   相同点: 栈和队列都是线性结构;插入操作都是限定在表尾;插入和删除的时间、空间复杂度都是一样的;多链栈和多链队列的管理模式可以一样的。不同点:    1. 栈的删除操作是在表尾进行(先进后出),队列的删除操作是在表头进行(先进先出)。    2. 常见栈的应用场景有:括号问题求解、表达式的转换和求值、函数调用和递归实现、深度优化搜索遍历。       ...
HashMap的设计与实现
一.Map   Java集合中,List和set存储的都是单个值,而Map中存储的却是key-value对。  实现Map接口的类可以分为两种:基于Hash表的和基于RB-Tree的。      基于Hash表的主要是HashMap,该类具有Hash表的一些特点   1)集合中元素是无序的   2)操作时间复杂度为O(1)   3)可能要考虑hash冲突、hash表扩容的情况   4
通用数据缓存设计方案
随着redis等内存数据库的流行,大多数应用及系统均开始采用redis集群作为系统的缓存方案,用来减少数据库的压力,增加应用并发及响应速度。前端页面的缓存暂不做探讨,主要是针对后端服务的数据缓存。 数据缓存的分类及特点 常规涉及的数据缓存大致可以从以下三个方面进行分类:生命周期、时效性、复杂度; 数据缓存根据生命周期分类主要分为:长期、中期、短期三类,主要作用及特
内存缓存之HashMap、EHCache、Guava Cache对比
缓存不应该被过度使用,在不同场景下,选用不同的方式缓存数据。   简单场景,存入一些占用内存不多的数据,而且这些数据不会主动发生变化,服务器启动后就永久存储,修改和删除都是全手动执行。而且服务器重启时不需要再自动恢复到之前的状态。这种数据直接用Map等放到内存中即可。   而一个标准Cache的主要特征有: 过期时间 容量规划(重要) 清除策略(重要) ...
JAVA里面四种引用以及如何使用软引用构建高速缓存
1. 四种缓存
对读写锁的深入理解-读写锁技术的妙用---实现缓存
对读写锁的深入理解  参考:http://www.educity.cn/wenda/380140.html  其中有些小理解错误,大体可以接受         参考:http://www.wang1314.com/doc/topic-898895-1.html  主要通过其理解降级锁 1、对降级锁的理解 2、读写锁技术的妙用----读写锁实现缓存 1、锁降级
大数据量访问解决方案-memcached 独立的缓存服务器
1,订票系统案例,某航班只有一张机票,假定有1w个人打开你的网站来订票,问你如何解决并发问题(可扩展到任何高并发网站要考虑的并发读写问题) 问题,1w个人来访问,票没出去前要保证大家都能看到有票,不可能一个人在看到票的时候别人就不能看了。到底谁能抢到,那得看这个人的“运气”(网络快慢等) 其次考虑的问题,并发,1w个人同时点击购买,到底谁能成交?总共只有一张票...
如何自己设计一个高效类似于HashMap的容器
每一个找工作的人,对于Java collections的问题都会很熟悉,JDK 的java.util这个工具类中有各种容器的设计与实现。Hashmap是对map接口的一种实现,是一种使用很频繁的容器。 1.HashMap与Hashtable   相比较于Hashtable,HashMap非线程安全,每一个定义的方法都没有进行锁定,所以多线程情况下会高效但是会出现数据不同步问题,而hashtab
如何使用Future和ConcurrentHashMap实现一个线程安全且高效的缓存
几乎所有的服务器应用程序都会使用某种形式的缓存。重用之前的结果,以及来降低延迟,提高吞吐量。 像许多重复发明的轮子一样,缓存看上去非常简单。然而,简单的缓存可能会大大提升系统的瓶颈。我们现在首先来实现一个简单的缓存,通过一步步深入来构建一个并发安全且高效的缓存。 构建场景:我们的系统中有一个比较耗时的查询操作,定义为searchUser,如果不使用缓存那么我们会每次都去数据库进行一个耗时的查询。
Java基础(3)-Map实现仿照Redis
今天看一个springboot项目中,有一段代码是用Map来实现类似与Redis的缓存机制的,觉得在小的请求量下可以使用来代替Redis,所以将其封装成工具类MapCache,并且加上注释,方便使用。
海量数据库(详解缓存处理方法)
缓存处理大数据缓存就是将从数据库中获取的结果暂时保存起来在下次使用的时候无需重新到数据库中获取,从而降低数据库的压力。 缓存的使用方式可以分为通过程序直接将数据库数据保存到内存中和使用缓存框架两种方式 它主要用于数据变化不是很频繁的情况。而且如果是定期失效( 数据修改时不失效)的失效机制,实时性要求也不能太高,因为这样缓存中的数据和真实数据可能会不一致。而memcache就是提供缓存的一种缓存框
采用static Map、ConcurrentHashMap实现数据缓存
考虑到在使用HashMap在并发时会出现不正确行为,自己编写了采用static ConcurrentHashMap来完成静态缓存的处理,目的是为了能够用来处理高并发的线程安全类,如有问题请各指教。
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 教育大数据设计文档 如何设计培训课程