当前位置: 首页 > news >正文

做的比较唯美的网站做机械设计的网站

做的比较唯美的网站,做机械设计的网站,建造师求职网,品牌网站建设 d磐石网络1.场景 遇到了一个场景,在客户给我们推送的数据中,咋1分钟左右,会有相同车辆vehicle 和时间 gpstime一样的数据,这类数据呢,我们认为是重复数据,需要过滤的 把相同 vehicle 和 gpstime 作为key存入到redis中…

1.场景

遇到了一个场景,在客户给我们推送的数据中,咋1分钟左右,会有相同车辆vehicle 和时间 gpstime一样的数据,这类数据呢,我们认为是重复数据,需要过滤的
把相同 vehicle 和 gpstime 作为key存入到redis中,过期时间为1分钟,当推送过来数据时,查询一下redis中是否有值,有则过滤
推送过来的数据呢,是批量,所以我们要批量获取key的操作,在这儿记录下操作过程

2.引入注解@Resource

@Resourceprivate RedissonClient redissonClient;

3.引入redisson的依赖

<!--redisson--><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.14.1</version></dependency>

4.推送的数据格式是json数组

JSONArray params

Map<String, RFuture<Object>> objectObject = new HashMap<>();params.forEach(json -> {try {JSONObject jsonObjectBean = JSON.parseObject(JSON.toJSONString(json));String gpsTime = jsonObjectBean.getString("lastDeviceTime");String vehicleNo = jsonObjectBean.getString("vehicleNo");String redisKey = "gps:mita:vehicle:gpstime:" + vehicleNo + ":" + gpsTime;objectObject.put(redisKey, redissonClient.getBucket(redisKey).getAsync());} catch (Exception e) {log.error("mita推送单个车辆信息异常(redis操作)=", e);}});

标记哪些是新增数据,那些是更新(已经存在的数据)
key对应的value给个1就行了,数据量小,不占内存

Map<String, Object> addDataMap = new HashMap<>();Map<String, Object> updateDataMap = new HashMap<>();for (String key : objectObject.keySet()) {Object value = objectObject.get(key).get();if (value == null) {// redis中不存在addDataMap.put(key, "1");} else {// redis中已存在updateDataMap.put(key, value);}}
// 开启批处理RBatch batch = redissonClient.createBatch();for (String redisKey : addDataMap.keySet()) {batch.getBucket(redisKey).setAsync(addDataMap.get(redisKey), 1, TimeUnit.MINUTES);}for (String redisKey : updateDataMap.keySet()) {batch.getBucket(redisKey).expireAsync(1, TimeUnit.MINUTES);}// 执行批处理batch.execute();
params.forEach(json -> {
JSONObject jsonObjectBean = JSON.parseObject(JSON.toJSONString(json));
String vehicleNo = jsonObjectBean.getString("vehicleNo");
String gpsTime = jsonObjectBean.getString("lastDeviceTime");String redisKey = "gps:mita:vehicle:gpstime:" + vehicleNo + ":" + gpsTime;
if ("1".equals(addDataMap.get(redisKey))){
// 这里面就是新增的数据了(需要的),updateDataMap 里面是需要过滤的数据
}});

学会使用redis的管道模式来批量处理key了吗

http://www.15wanjia.com/news/181419.html

相关文章:

  • 新网站在谷歌上面怎么做推广顺义网站开发
  • 单页网站设计制作怎么查看网页的源代码
  • 山西省住房建设厅网站广州营销型网站制作
  • 做网站用什么软件语言购物网站开发大纲
  • 洛阳网站开发公司建站系统主要包括企业网站系统
  • 做网站推广也要营业执照吗如何在wordpress中添加背景音乐
  • 有后台管理系统网站管理wordpress 4.6漏洞
  • 西安网站建设问问q778925409耍強网络营销方式的对比分析论文
  • 怎么制作微信网站广州去东莞回来要隔离吗
  • 西安企业建站价格做旅行网站好
  • 企业网站建设哪家服务好用asp.net做购物网站
  • 网站在线演示wordpress 自定义链接地址
  • 湖南英文网站建设yandx引擎入口
  • 咨询公司网站源码seo推广必须要做的9种方法
  • 做网站需要下什么软件运城建设银行网站
  • 淄博网站优化网站模板哪个好
  • qq互联 网站开发WordPress里面自定义功能
  • 第一个做电子商务的网站小程序公司代理
  • tp3.2.3网站开发实例亿级流量网站架构
  • 美妆企业网站模板学编程的基础要具备什么
  • 建站网站珠海网站制作哪家便宜
  • app网站制作软件有哪些做100个网站
  • 网站右键禁止生活中好的设计产品
  • 济南市网站推广公司第三方app下载平台
  • 做短视频网站好城市建设规划网站
  • 手机网站展示微商推广网站怎么做
  • 深圳成品网站超市国外商业网站
  • 怎么做婚庆网站平台兴宁市住房和城乡建设部网站
  • 惠州网络公司网站建设网络舆情现状分析
  • 网站快捷导航ie怎么做微信营销的方式有哪些