• 如何缓存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包含的数据巨大的话,采用这种方式可以节省大量时间。

  • 相关阅读:
    origin/HEAD -> origin/master 这个分支是干嘛的啊
    使用Spring Boot来加速Java web项目的开发
    分辨真假数据科学家的20个问题及回答
    我的数学建模历程
    计算机科学中最重要的32个算法
    期权交易基本原理——买进看跌期权(Long Put),卖出看跌期权(Short Put)
    期货交易术语
    apecceosummit2016
    opencv 61篇
    server-pc--------------->lspci,lsusb,meminfo等配置信息
  • 原文地址:https://www.cnblogs.com/cocos2014/p/4256499.html
Copyright © 2020-2023  润新知