Hyuga Blog

岁月静好 不负年华

Redis小技巧

Redis常规指令和小技巧

官方教程 https://www.redis.net.cn/order/3528.html 简单的命令 选择数据库 Redis Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。 语法 redis 127.0.0.1:6379> SELECT index redis 127.0....

批量获取多条线程的执行结果

如何批量获取多条线程的执行结果,简化代码

场景 一个list,拆分成5份,每份数据放入线程池,返回future。 5个future任务,5个get方法。代码实在不雅观。 如下: List<Integer> list = ListUtil.NEW(1, 2, 3, 4, 5, 6); List<List<Integer>> lists = ListUtil.splitList(list, 3)...

Lambda循环对象去重

lambda表达式循环过滤特定条件去重

场景 根据指定参数笛卡尔积混搭,可能会出现重复url,需要把list中有一样url属性的对象去重。 方案 最开始直观的想法是for循环,用一个set为url去重,符合条件的放入新的list中。 思路尚可,但是实现代码看起来很冗长。 故此用lambda实现! //汇总多线程结果 List<List<QuestionDto>> result = ThreadP...

Redis删除指定前缀Key的缓存集合

Redis删除指定前缀Key的缓存集合,指令批量删除

场景 项目改版上线,需要清除手机端之前的登录信息,强制重新登录。 方案 方案一 请求拦截器,只要检测不符合条件,清除登录缓存,前端跳转至登录页 好处:方便,几行代码的问题。 坏处:每次拦截都要做附加查询判断,而且附加代码什么时候移除也是个问题,可能移除后,移动端再登录,一样拦截不了。 方案二 清除redis缓存,使之重新登录 好处:高效快捷,删...

Spring Boot健康检查异常

Solr health check failed

Solr health check failed 最近接手一个项目,启动后报错如下: #s_logger#2019-08-07 18:07:05.354 [RMI TCP Connection(3)-10.152.2.52] WARN o.s.boot.actuate.solr.SolrHealthIndicator-89 Solr health check failed #e_log...

Mysql疑难杂症

开发过程遇到的一些mysql相关的问题

mysql5.7报错this is incompatible with sql_mode=only_full_group_by 昨天发现rc的mysql和线上版本不一致,重装5.7的mysql后,发现启动会报某条sql错误,经排查,发现是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式。 一旦开启这个模式,原先的 group by语句就报错。也就...

JAVA-DIY-15-WEEK

Do you like technology?

第15次讨论主题:微服务 话题 微服务的价值是什么? 服务单一,开发效率高,耦合性低,敏捷高效开发等等。 个人虽然待的公司不大,但也是从单体服务一路做到现在的微服务架构。 单体服务就不提了,和原先接触的分布式架构不同的是,之前的分布式系统是把大的服务拆分开多个系统,当时采用的是dubbo方式调用。 相对于单体服务而言,已经集群且分布式的服务无疑是更健壮和更易于扩展维护的,不同团队的...

Maven打包优化方案

Maven Package Optimization

前言 测试环境采用jenkins+maven+nexus打包,随着项目慢慢变大,打包越来越慢,难以忍受每次打包要好几分钟。 当真是改bug 1分钟,打包10分钟。 为此,萌生了打包优化提速的想法,经过查找资料和分析,采用以下方案。 方案 由于每次打包都是删除服务器的源码文件,再重新拉取新的源码,所以第一步先移除clean,直接mvn install. 接着跳过单元测试,-D ma...

阿里巴巴-Arthas诊断工具

Alibaba开源的Java诊断工具-Arthas

官方简介 Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具 官方文档:https://alibaba.github.io/arthas 项目地址:https://gitee.com/arthas/arthas Arthas Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: ...

JAVA-DIY-14-WEEK

Do you like technology?

第14次讨论主题:Classloader的秘密? 话题 类加载的过程是怎么样的? Java中Class在JVM中的完整生命周期有七个阶段: 加载 Load 校验 Verify 准备 Prepare 解析 Resolve 初始化 Initialize 使用 Use 卸载 Unload 加载阶段 类加载器通过Class的全限定名称获取Class的二进...