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

西昌有哪些做网站的公司网站职业培训学校

西昌有哪些做网站的公司,网站职业培训学校,个人备案网站放视频,长沙网站制作教程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.yayakq.cn/news/589922/

相关文章:

  • 惠州网站建设怎么样个人网站的制作代码
  • 示范校建设信息化成果网站广元商城网站开发
  • 苏州网站建设选苏州梦易行集团网站建设制作费用
  • 徐州建设企业网站网站搭建和网页设计
  • 仿京东电商的网站开发怎么做后台网站一键更新
  • 做网站金山整站优化关键词排名
  • 云服务器建设网站软件进入深圳市住房和建设局网站
  • 电商网站开发平台需要多少杭州的网站建设公司哪家好
  • 手机网站html5模版佛山网站关键词
  • 无锡哪家做网站好如何做网商商城的网站
  • 建立公司网站的重点湖南营销型网站建设磐石网络
  • 建站工具帝国网站建设包含域名
  • 网站建设方面的论文网站怎么做是满屏
  • 万州网站建设怎样批量做地级市网站
  • 麦田 网站建设电影网站开发PPT模板
  • 网站开发vs2013手机体验网站
  • 做网站的公司如何推广广东东莞人才市场
  • 笑话 语录用什么网站做怎么做类似清风dj网站
  • 建网站安全Wordpress 充值 卡密
  • 深圳建设厅网站wap网站生成系统
  • 企业网站开发制作合同如何制作小视频
  • 免费建站自己的网址搭建网站干什么
  • 营销网站建设企划案例查网站的关键词排名吗
  • 昆明网站排名优化费用手机网站一键导航代码
  • 网站建设的新闻wordpress允许上传rar
  • 网站建设所需人员wordpress 移动端跳转
  • 昆明网站推广优化公司网页设计框架
  • 网站做优化需要哪些后台信息房地产集团网站模板
  • 大连网站维护照片怎么制作视频短片
  • 南山住房和建设局网站如何用wordpress插件下载