SpringBoot + Redis 布隆过滤器防恶意流量击穿缓存的正确姿势!
Spring

SpringBoot + Redis 布隆过滤器防恶意流量击穿缓存的正确姿势!

122 0

什么是恶意流量穿透假设我们的Redis里存有一组用户的注册email,以email作为Key存在,同时它对应着DB里的User表的部分字段。一般来说,一个合理的请求过来我们会先在Redis里判断这个用户是否是会员,因为从缓存里读数据返回快。如果这个会员在缓存中不存在那么我们会去DB中查询一下。现在试...

阅读全文
我怀疑这些是 IDEA 造成 BUG 问题,但又找不到任何证据!
IntelliJ IDEA

我怀疑这些是 IDEA 造成 BUG 问题,但又找不到任何证据!

72 0

大家好,我是东哥。相信大家开发时经常遇到一些由于使用IDEA工具造成的BUG问题,而且这些问题只能通过手动修改才可以,比如编译问题、命令行过长等等。不是很理解,为什么有些问题IDEA官方,不考虑优化或者从根本上解决这些问题呢?可能有些朋友认为这就不是问题,这只是IDEA不完善或者本身就是IDEA预留...

阅读全文
SpringBoot无侵入式,实现API返回统一JSON格式
Spring

SpringBoot无侵入式,实现API返回统一JSON格式

92 0

无侵入式 统一返回JSON格式其实本没有没打算写这篇博客的,但还是要写一下写这篇博客的起因是因为,现在呆着的这家公司居然没有统一的API返回格式?,询问主管他居然告诉我用HTTP状态码就够用了(fxxk),天哪HTTP状态码真的够用吗?在仔细的阅读了项目源码后发现,在API请求的是居然没有业务异常(...

阅读全文
Java 8 新特性:Comparator.naturalOrder | 自然排序
Java

Java 8 新特性:Comparator.naturalOrder | 自然排序

110 0

naturalOrder是比较器功能接口的静态方法。Java 8中引入的Comparator.naturalOrder方法返回一个比较器,该比较器以自然顺序比较可比较对象。对于自然排序,一个类需要实现Comparable并定义compareTo方法。一个对象的集合根据compareTo方法以自然排序...

阅读全文
JDK9 为何要将 String 的底层实现由 char[] 改成了 byte[]?
Java

JDK9 为何要将 String 的底层实现由 char[] 改成了 byte[]?

97 0

如果你不是 Java8 的钉子户,你应该早就发现了:String 类的源码已经由 char[] 优化为了 byte[] 来存储字符串内容,为什么要这样做呢?开门见山地说,从 char[] 到 byte[],最主要的目的是为了节省字符串占用的内存。内存占用减少带来的另外一个好处,就是 GC 次数也会减...

阅读全文
Mybatis 如何实现流式读取 MySQL 大数据量记录?
Spring

Mybatis 如何实现流式读取 MySQL 大数据量记录?

187 0

背景最近公司提了个需求,说公司的旧系统的报表导出的时候,数据量超过一万就导不出来了。经过分析,是旧系统做了限制。在更新的时候,查看了导出时虚拟机GC情况,发现原先程序执行时,内存激增,经过Google决定采用流式读取对sql进行优化。JDBC三种读取方式一次全部(默认):一次获取全部。流式:多次获取...

阅读全文