zoukankan      html  css  js  c++  java
  • 如何缓存hbase数据以减少下次取数据的时间

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

     1 function enterSearch(plate)
     2     {
     3         searchPlateBegin = new Date();
     4         var plateArray = new Array();
     5         var convertReverseArray = new Array();
     6         if(regex_cache[plate] == null)
     7         {
     8 
     9             var strRegEx = convertInput(plate);
    10             var regEx = new RegExp(strRegEx);
    11             regEx.compile(regEx);
    12 
    13 
    14             for (var i = 0;i < keyArrayConvert.length;i++)
    15             {
    16                 if (regEx.test(keyArrayConvert[i]))
    17                 {
    18                     convertReverseArray.push(keyArray[i]);
    19                     plateArray.push(keyArrayConvert[i]);
    20                 }
    21             }
    22 
    23             var cacheFileName = (++write_regex_cache_count).toString() + ".json";
    24 
    25             fs.writeFile("./cache/"+cacheFileName,JSON.stringify(convertReverseArray),function(err){
    26                 if(err) throw err;
    27                 regex_cache[plate] = "./cache/"+cacheFileName;
    28 
    29 
    30             });
    31 
    32             var cacheFileName_convert = (++write_regex_cache_count_convert).toString() + "_decoded.json";
    33 
    34             fs.writeFile("./cache/"+cacheFileName_convert,JSON.stringify(plateArray),function(err){
    35                 if(err) throw err;
    36                 regex_cache_convert[plate] = "./cache/"+cacheFileName_convert;
    37 
    38             });
    39 
    40             searchPlateEnd  = new Date();
    41 
    42         }
    43         else
    44         {
    45             searchPlateEnd  = new Date();
    46             convertReverseArray = JSON.parse(fs.readFileSync(regex_cache[plate],'utf8'));
    47             plateArray = JSON.parse(fs.readFileSync(regex_cache_convert[plate],'utf8'));
    48 
    49         }

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

  • 相关阅读:
    各国货币M2增长对比
    Centos6 服务器病毒查杀命令历史
    常见的贷款实际年化利率
    Nginx Rewrite规则
    使用HTML5新特性Mutation Observer实现编辑器的撤销和撤销回退操作
    通过javascript在网页端解压zip文件并查看压缩包内容
    通过javascript在网页端生成zip压缩包并下载
    Plupload上传组件 + javaweb实现上传源码以及DEMO
    chrome 26.0.XXX版本下media query流媒体查询有问题的bug
    epub电子书--目录结构介绍
  • 原文地址:https://www.cnblogs.com/cocos2014/p/4256499.html
Copyright © 2011-2022 走看看