Redis和Hbase互补取值思路
来源:互联网 发布:js一句话木马 编辑:程序博客网 时间:2024/04/30 12:44
1、思路:
用户取数据首先从Redis中取,Redis中没有数据则将Hbase中的数据插入Redis,且在配置文件中设置redis开关redisSwitch,如果redisSwitch=true则是从Redis中取数据,否则直接从Hbase中取数据,在配置文件中设置Redis的域的有效时间effectiveTime=86400,86400s为24小时,若设置为0s则直接失效。
2、实现:
@RequestMapping(value = "consumer/consumerPortrait.json", produces = "application/json; charset=UTF-8")
public void consumerPortraitJson(@RequestParam("cust_num") String cust_num, HttpServletResponse response) throws Exception {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String resultJson ="";
String tableName = "ns_sousuo:tdm_user_label_info_ed";
String rowKey = cust_num;
if (rowKey == null || rowKey == "") {
rowKey = "";
}
Map<String,String> redisMap = commonTools.readPropertiesFile("ps_redis");
String redisSwitch = redisMap.get("redisSwitch");
if(redisSwitch.equalsIgnoreCase("true")){//从redis获取数据
ShardedJedis jedis = null;
try {
jedis = pool.getResource();
boolean hexist = jedis.hexists(nimitzRowkey, cust_num);
log.info(String.valueOf(hexist));
if(hexist){
log.info("从redis取数据");
resultJson = jedis.hget(nimitzRowkey, cust_num);
}else{
resultJson = cusService.getResultMapFromHbase(tableName, cust_num);
int effectiveTime = Integer.parseInt(redisMap.get("effectiveTime"));
//离线存储至redis
taskExecutorUtil.setRedis(jedis, nimitzRowkey, cust_num, resultJson, effectiveTime);
log.info("从Hbase离线导入redis");
}
} catch (JedisConnectionException e){
log.error("jedis连接异常", e);
}
}else{//从hbase获取数据
resultJson = cusService.getResultMapFromHbase(tableName, rowKey);
log.info("从hbase取数据");
}
response.getWriter().write(resultJson);
}
- Redis和Hbase互补取值思路
- Redis和Hbase互补取值思路
- redis锁实现分布式取号思路
- 世界建立的两种思路,互补
- Cassandra和HBase主要设计思路对比
- Cassandra和HBase主要设计思路对比
- Cassandra和HBase主要设计思路对比
- Cassandra和HBase主要设计思路对比
- redis(三)积累-基本的取值和设值
- HBase, Memcached, MongoDB, Redis和Solr对比
- redis和hbase可视化工具介绍
- HBase,Redis
- redis和redis-Java客户端的设计思路
- Solr+Hbase多条件查(优劣互补)
- Solr+Hbase多条件查(优劣互补)
- Java从Hbase取值分别转化为String和Map
- Java从Hbase取值分别转化为String和Map
- HBase简介(思路清晰)
- lintcode--平面范围求和-不可变矩阵(leetcode--Range Sum Query 2D)
- Solidity(5)
- 特征选择与稀疏学习(Feature Selection and Sparse Learning)
- 代码感悟(1)
- iOS加密:AES+Base64
- Redis和Hbase互补取值思路
- SVM原理及实现
- linux上安装Openssl步骤详解
- 这是只鸟... 这是个飞机... 这... 取决于你的分类器阈值
- 将轮廓划分成小块并判断每一个小块内是否有轮廓并绘制
- hdu1171 Big Event in HDU(生成函数)
- 关于【true positive,false positive,true negative,false negative】的几个解释
- Unity 将导入到Sprites文件夹内的图片自动设置类型为Sprite
- 给初学者的RxJava2.0教程(一)