缓存从hbase取得的数据的好处是显而易见的,缓存到本地以后,如果下次的输入能够直接从已缓存的本地文件中取得数据就无需再次访问hbase数据库,这样一来数据量大的话可以节省大量的访问hbase数据库的时间。

 function enterSearch(plate)
{
searchPlateBegin = new Date();
var plateArray = new Array();
var convertReverseArray = new Array();
if(regex_cache[plate] == null)
{ var strRegEx = convertInput(plate);
var regEx = new RegExp(strRegEx);
regEx.compile(regEx); for (var i = 0;i < keyArrayConvert.length;i++)
{
if (regEx.test(keyArrayConvert[i]))
{
convertReverseArray.push(keyArray[i]);
plateArray.push(keyArrayConvert[i]);
}
} var cacheFileName = (++write_regex_cache_count).toString() + ".json"; fs.writeFile("./cache/"+cacheFileName,JSON.stringify(convertReverseArray),function(err){
if(err) throw err;
regex_cache[plate] = "./cache/"+cacheFileName; }); var cacheFileName_convert = (++write_regex_cache_count_convert).toString() + "_decoded.json"; fs.writeFile("./cache/"+cacheFileName_convert,JSON.stringify(plateArray),function(err){
if(err) throw err;
regex_cache_convert[plate] = "./cache/"+cacheFileName_convert; }); searchPlateEnd = new Date(); }
else
{
searchPlateEnd = new Date();
convertReverseArray = JSON.parse(fs.readFileSync(regex_cache[plate],'utf8'));
plateArray = JSON.parse(fs.readFileSync(regex_cache_convert[plate],'utf8')); }

在这里就是做了一个缓存,把convertReverseArray以不同的文件名的形式缓存到cache目录下。每输入一个plate,先去到regex_cache[plate]中寻找有无数据,如果没有数据说明本地没有相对应的数据,就会调用正则表达式从keyArrayConvert中找到相匹配的数据放至regex_cache[plate]中,如果该数据已存在说明本地文件已有该数据,这是跳到else语句执行相关的操作,如果keyArrayConvert包含的数据巨大的话,采用这种方式可以节省大量时间。

如何缓存hbase数据以减少下次取数据的时间的更多相关文章

  1. highcharts图表的上钻下钻,下钻数据,与回取数据

    通常图表在下钻之后,会点返回,返回之后,可能需要调用上钻回调事件,在drillup事件里获取上钻数据,然后对需要联动进行操作: chart: { type: 'column', events: { d ...

  2. scrapy过滤重复数据和增量爬取

    原文链接 前言 这篇笔记基于上上篇笔记的---<scrapy电影天堂实战(二)创建爬虫项目>,而这篇又涉及redis,所以又先熟悉了下redis,记录了下<redis基础笔记> ...

  3. m_Orchestrate learning system---三十五、php数据和js数据的解耦:php数据(php代码)不要放到js代码中

    m_Orchestrate learning system---三十五.php数据和js数据的解耦:php数据(php代码)不要放到js代码中 一.总结 一句话总结:也就是以html为中介,用html ...

  4. HBase指定大量列集合的场景下并发拉取数据时卡住的问题排查

    最近遇到一例,HBase 指定大量列集合的场景下,并发拉取数据,应用卡住不响应的情形.记录一下. 问题背景 退款导出中,为了获取商品规格编码,需要从 HBase 表 T 里拉取对应的数据. T 对商品 ...

  5. NET 5 爬虫框架/抓取数据

    爬虫大家或多或少的都应该接触过的,爬虫有风险,抓数需谨慎.  爬虫有的是抓请求,有的是抓网页再解析 本着研究学习的目的,记录一下在 .NET Core 下抓取数据的实际案例.爬虫代码一般具有时效性,当 ...

  6. windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤

    nutch2.x 在eclipse中实现抓取数据存进mysql步骤 最近在研究nutch,花了几天时间,也遇到很多问题,最终结果还是成功了,在此记录,并给其他有兴趣的人提供参考,共同进步. 对nutc ...

  7. 借助Chrome和插件爬取数据

    工具 Chrome浏览器 TamperMonkey ReRes Chrome浏览器 chrome浏览器是目前最受欢迎的浏览器,没有之一,它兼容大部分的w3c标准和ecma标准,对于前端工程师在开发过程 ...

  8. SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题

    目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...

  9. Python分页爬取数据的分析

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 向右奔跑 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

随机推荐

  1. LeetCode OJ--Regular Expression Matching

    http://oj.leetcode.com/problems/regular-expression-matching/ 问题给想复杂了,只有p中可以含有. *,s中的字符都是确定的.想了好久,最终还 ...

  2. mysql中的SQL_CACHE(性能更优化)

    mysql中的sql_cache是个容易忽视的地方,要 使用的话,必须先设置query_cache_size, 以及设置query_cache_type ,其中 query_cache_type 这个 ...

  3. (2).net core2.1 Startup.cs

    app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Ho ...

  4. 洛谷——P2386 放苹果

    P2386 放苹果 题目背景 (poj1664) 题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分发(5,1,1和1,1,5是同一种方法) 输入输出格式 输入 ...

  5. Codeforces Gym 100338H High Speed Trains 组合数学+dp+高精度

    原题链接:http://codeforces.com/gym/100338/attachments/download/2136/20062007-winter-petrozavodsk-camp-an ...

  6. 支持C++11标准

    设置CB下的GCC. Settings->Compiler->Compiler Settings勾选Have g++ follow the C++11 ISO C++ language s ...

  7. 第三章 poj 1064——关于带精度的二分法

    /* 题意:给定n个实数l[i],给定一个k 问:求最大的ans,使得sum l[i]/ans i=1 to n >=k,且ans最大*/ #include <iostream> # ...

  8. IntelliJ IDEA版本:Ultimate、Community、EAP版本的区别

    Community: 社区版,免费,但是功能有限制,Android Studio就是基于这个版本定制的. http://idea-intellij.com/intellij-community/ Ul ...

  9. 几点iOS开发技巧

    转自I'm Allen的博客   原文:iOS Programming Architecture and Design Guidelines   原文来自破船的分享   原文作者是开发界中知晓度相当高 ...

  10. uibutton 使用settitle后如何修改其中文字对齐方式

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];            btn.frame = CGRectMake(5, s ...