自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 数据库优化之清理数据库碎片

之前存储的内容长,后来存储是短的,即使后来插入新数据,那么有一些空白区域还是没能有效利用的。关掉该参数off之后,创建表,只会生成.frm元数据文件,数据会存放到系统表空间,这样会不利于后期管理,系统表空间会逐渐膨胀,导致影响性能。打开该参数,创建表则会分2个文件,.frm存放元数据,.ibd存放表数据(表初始大小是98304KB);注意:optimize、ALTER TABLE是高危操作,会锁表,影响业务,建议在低峰期操作。对于InnoDB的表,OPTIMIZE TABLE 的工作原理如下。

2024-09-03 16:47:47 275 1

原创 数据库、es、redis、mq密码加密解密方式

在对应的版本路径下右键打开命令窗口,执行java -cp druid-版本号.jar com.alibaba.druid.filter.config.ConfigTools 密码明文。采用aes加密解密,根据key加密解密。找到对应的所用的druid依赖。

2024-09-03 10:35:14 212

原创 EasyExcel解析横向表格

问题记录

2024-01-16 21:01:12 696 2

原创 系统卡顿排查

在这里插入图片描述。

2023-11-14 20:12:26 78 1

转载 java中的上下文是什么

*Context翻译过来为上下文的意思,上下文分很多种,如应用启动时的ApplicationContext,接收请求时的RequestContext。在一些API中,你会在接口/类中看到这个名称,例如Servlet的ServletContext、JSF的FacesContext、Spring的ApplicationContext、Android的Context、JNDI的InitialContext等等。它们通常都遵循Facade模式,该模式让最终用户不需要了解环境细节抽象到单个接口/类中。

2023-09-21 15:52:16 807

原创 踩过的坑总结

经过排查,原因是gt是关键字,只要使用就会报错。结果报错,报错信息为。

2023-09-20 09:37:43 286 1

转载 数据库行转列

https://www.rstk.cn/news/738548.html?action=onClick

2023-09-19 09:39:14 48

转载 MemCache

更重要的是,集群中缓存服务器节点越多,增加节点带来的影响越小,很好理解。这种MemCache集群的方式也是从分区容错性的方面考虑的,假如Node2宕机了,那么Node2上面存储的数据都不可用了,此时由于集群中Node0和Node1还存在,下一次请求Node2中存储的Key值的时候,肯定是没有命中的,这时先从数据库中拿到要缓存的数据,然后路由算法模块根据Key值在Node0和Node1中选取一个节点,把对应的数据放进去,这样下一次就又可以走缓存了,这种集群的做法很好,但是缺点是成本比较大。

2023-09-05 09:52:06 57

原创 分布式锁原理及使用

2、每个客户端都会获取/lock节点下所有创建的子节点(所有客户端创建的子节点锁),客户端获取到所有的子节点之后,开始比较子节点的顺序编号,顺序编号在这里就会起到决定性的作用,如果客户端发现自己创建的子节点顺序编号最小,那么就认为该客户端获取到了锁,使用完锁之后就会将节点删除。4、如果客户端从监听事件中得知比自己子节点编号小的节点被删除了,此时会再次判断自己的子节点编号是不是所有子节点中最小的,如果是,则获取到锁,如果不是则重复上步骤继续获取到比自己小的子节点并且监听事件信息。常见的方式有乐观锁和悲观锁。

2023-07-20 16:18:03 181 1

原创 数据库SQL优化

当SQL优化不明显,则考虑添加索引(对于经常需要用到的作为关联的库表字段,要习惯性添加索引,特别是跟数据量大的表做关联或者本身数据量就很大)1、使用MySQL内置函数INSTR(str,substr) 来匹配,作用类似于java中的indexOf(),查询字符串出现的角标位置。1、减少数据访问: 设置合理的字段类型,启用压缩,通过索引访问等减少磁盘IO。5、利用更多资源: 使用表分区,可以增加并行操作,更大限度利用cpu资源。4、当表数据量较少(不超过1w),可不选择优化,优化效果不明显。

2023-07-13 19:51:34 104 1

原创 项目依赖冲突问题

最近遇到一个问题,项目A需要使用hutool的Sha256方法,但是项目使用的hutool的5.3.1版本,没有这个方法,所以在项目内引用了hutool的5.8.5版本。但是项目A中原本就没有引用hutool,经排查发现是项目B引用的5.3.1版本,项目A引用了项目B。

2023-07-10 21:24:42 363 1

原创 多线程并发的新思路-ThreadLocal

ThreadLocal

2022-09-02 15:02:00 201 1

原创 SpringCloud Hystrix熔断

spring cloud熔断

2022-08-02 22:14:40 191

原创 JAVA8新特性函数式接口

java8函数式接口

2022-06-17 14:22:57 69

原创 SpringBoot拦截器

1.什么是拦截器?拦截器可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能。2.定义拦截器步骤在 Spring Boot 项目中,使用拦截器功能通常需要以下 3 步:1.定义拦截器;2.注册拦截器;3.指定拦截规则(如果是拦截所有,静态资源也会被拦截)。一、定义拦截器在 Spring Boot 中定义拦截器十分的简单,只需要创建一个拦截器类,并实现 HandlerInterceptor 接口,重写以下三个方法。@Slf4j@Componen

2022-03-07 12:35:26 18570 2

原创 对象数组按属性分组、属性计算

对象数组按属性分组操作,按属性分组并计算//跟据某个属性分组Map<String, List<PersonData>> collect = list.stream().collect(Collectors.groupingBy(PersonData::getType));//根据某个属性分组,汇总某个属性Map<String, Integer> collect2 = list.stream().collect(Collectors.groupingBy(Pers

2021-12-10 18:53:54 416

原创 延时队列DelayQueue

JDK 中提供了一组实现延迟队列的API,位于Java.util.concurrent包下DelayQueueDelayQueue是一个BlockingQueue(无界阻塞)队列,它本质就是封装了一个PriorityQueue(优先队列),PriorityQueue内部使用完全二叉堆来实现队列元素排序,我们在向DelayQueue队列中添加元素时,会给元素一个Delay(延迟时间)作为排序条件,队列中最小的元素会优先放在队首。队列中的元素只有到了Delay时间才允许从队列中取出。队列中可以放基本数据类型或

2021-10-13 17:26:56 253

原创 Gson的使用

1.Gson对象的创建Gson gson = new GsonBuilder() .setDateFormat("yyyy-MM-dd HH:mm:ss") .setLenient()// json宽松 .enableComplexMapKeySerialization()//支持Map的key为复杂对象的形式 .serializeNulls() //智能null .setPrettyPrinting()// 调教格式 .disableHtmlEscaping() //默认是G

2021-10-13 11:24:01 734

原创 前后端传参收参总结

@PathVariable注解用于获取url中的参数,形如http://localhost:8080/user/{id}(仅用于get请求方式)@GetMapping("/user/{idd}/{name}") public String testPathVariable(@PathVariable(value = "idd") Integer id, @PathVariable String name)@RequestParam注解1、用于获取 Request 里参数值,形如http://lo

2021-08-30 20:56:52 517

原创 JAVA8新特性笔记

JAVA8新特性创建固定数组List list= Arrays.asList(“a”, “b”, “c”, “d”);取出数组属性组成新数组List idcards= users.stream().map(User::getIdcard).collect(Collectors.toList());List collect =list.stream().map(String::toUpperCase).collect(Collectors.toList());数组中所有元素都执行某种方法Li

2021-08-26 12:00:26 819

原创 DOM4J增删改查XML

![DOM4J增删改查XML](https://img-blog.csdnimg.cn/20201204142403734.png?x-oss-processDOM4J增删改查XML欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FL

2020-12-04 14:28:29 82

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除