自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello World

下午可以不下雨吗

  • 博客(843)
  • 资源 (4)
  • 收藏
  • 关注

原创 4. 寻找两个正序数组的中位数

见。

2023-10-26 22:30:24 748

原创 MySQL深度分页

深度分页问题的本质是在 MySQL 数据库中,通过 LIMIT 和 OFFSET 关键字进行分页时,MySQL 需要在每次查询时扫描整张表,直到找到当前页的数据。这种查询方式需要进行大量的磁盘 I/O 和内存操作,导致查询效率非常低下。当我们每次查询的记录数很小,但是查询次数很多时,就会产生大量的 I/O 操作,严重影响查询效率。例如有个sql假设假如 LIMIT 和 OFFSET 关键字同时进行使用的话,limit语句会先扫描offset+n行,然后再丢弃掉前offset行,返回后n行数据。

2023-05-08 11:32:29 2583 1

原创 cookie session token的区别

首先我们需要知道,之所以出现cookie、seesion等,是因为http是无状态的。无状态:就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的。

2023-04-06 10:54:54 1111 1

原创 自定义注解

元注解元注解 的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation(元注解)类型,它们被用来提供对其它 annotation类型作说明。1、@Target元注解@Target注解,是专门用来限定某个自定义注解能够被应用在哪些Java元素上面的,标明作用范围;取值在java.lang.annotation.ElementType 进行定义的。public enum ElementType { /** 类,接口(包括注解类型)或枚举的声明 */ TYP

2023-03-21 14:40:23 352

原创 数据持久化层--查询分离

何为查询分离?查询分离即每次写数据时保存一份数据到其他的存储系统里,用户查询数据时直接从中获取数据。何种场景下使用查询分离?1)数据量大:比如单个表的行数有上千万,当然,如果几百万就出现查询慢的问题,也可以考虑使用。2)查询数据的响应效率很低:因为表数据量大,或者关联查询太过复杂,导致查询很慢的情况。3)所有写数据请求的响应效率尚可:虽然查询慢,但是写操作的响应速度还可以接受的情况。

2023-03-17 18:26:47 561 1

原创 字符串比较时常量的位置

今天在线上报了一个npe,检查后发现是String 的equals方法抛出来的。类似于这种。

2023-03-16 15:57:25 169

原创 @Resource和@Autowired的一些理解

Spring依赖注入中,大家都知道@Resource和@Autowired。明明@Resource即支持名字又支持类型,还要@Autowired干嘛?

2023-03-13 10:35:01 251 1

原创 数据持久化层--冷热分离

有一个系统的主要功能是这样的:它会对接客户的邮件服务器,自动收取发到几个特定客服邮箱的邮件,每收到一封客服邮件,就自动生成一个工单。之后系统就会根据一些规则将工单分派给不同的客服专员处理。这家媒体集团客户两年多产生了近2000万的工单,工单的操作记录近1亿。平时客服在工单页面操作时,打开或者刷新工单列表需要10秒钟左右。要求进行优化:当时的数据情况如下:1)工单表已经达到3000万条数据。2)工单表的处理记录表达到1.5亿条数据。3)工单表每日以10万的数据量在增长。在客户提出需求之前,项目组已经通

2023-03-12 17:20:42 390 1

原创 svg转换到base64格式

需要将端上传过来的svg文件解析为字符串,然后再生成jpeg格式图片,再将图片转成Base64格式进行使用首先引入如下以来。版本一定按照这个来,高版本会出现各种类丢失的问题。再就是工具类代码功能测试可以看到生成了base64字符串进行转化后能够复原出图片

2022-12-06 10:35:03 4731 2

原创 一条SQL语句执行的顺序

大体来说,MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务 功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在 这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、 Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了 默认存储引擎。

2022-11-21 17:41:29 3713

原创 TiDB扩缩容

需要扩容一个TiKV节点。

2022-11-06 16:08:31 486

原创 TIDB集群部署

从 TiDB 4.0 版本开始,TiUP 作为新的工具,承担着包管理器的角色,管理着 TiDB 生态下众多的组件,如 TiDB、PD、TiKV 等。用户想要运行 TiDB 生态中任何组件时,只需要执行 TiUP 一行命令即可,相比以前,极大地降低了管理难度。

2022-11-06 15:59:03 1892 1

原创 TiDB与MySQL兼容性对比

TiDB 的自增列仅保证唯一,也能保证在单个 TiDB server 中自增,但不保证多个 TiDB server 中自增,不保证自动分配的值的连续性,建议不要将缺省值和自定义值混用,若混用可能会收 DuplicatedError 的错误信息。explicit_defaults_for_timestamp=on,数据行更新时,timestamp类型字段不更新为当前时间。lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写。

2022-11-06 15:35:59 1652

原创 TIDB简介及基础架构

SQL,传统关系型数据库,例如 MySQLnoSQL,例如 MongoDB,RedisnewSQL。

2022-10-30 16:32:39 6467 1

原创 controller接收List入参

controller需要接受一个List传参,但是联调的时候发现断点断上了但是请求进不来。当时代码如下。

2022-09-21 11:52:15 2614

原创 CDN的基本概念

CDN(Content Delivery Network)被称为内容分发网络,主要用于解决减少客户端请求的网络时延问题。假如一个上海的主机想要访问北京的主机的一些数据,那么数据肯定要走几百公里的路程。能不能在上海设置一个代理主机来缓存北京的主机对应的数据,这样的话,上海的主机直接访问上海的代理主机而不用在访问源服务器了,大大的减少了时延。CDN通过设置边缘代理服务器来大大的减少了客户端请求的网络时延。

2022-09-14 13:38:52 813

原创 ElasticSearch高阶操作

默认数据库有下面这张表表中有N条数据类似于下面这种我们通过kibana创建索引结构然后通过自定义的接口把mysql里的数据导入到ES中去。

2022-08-28 14:16:26 1365 1

原创 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

今天重置云服务器后,再在终端用ssh去登陆这台机器报错。

2022-07-29 15:55:36 141

原创 ELK部署应用与工作机制

ELK是三个开源软件的缩写,分别表示Elasticsearch,Logstash和Kibana。Elasticsearch和Kibana我们上面做过讲解。Logstash主要是用来日志的搜集、分析、过滤日志的工具,适用大数据量场景,一般采用c/s模式,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作,再一并发往Elasticsearch上做数据分析。...

2022-07-17 20:22:56 257

原创 ES高可用集群配置

主节点负责创建索引、删除索引、分配分片、追踪集群中的节点状态等工作,主节点负荷相对较轻,客户端请求可以直接发往任何节点,由对应节点负责分发和返回处理结果。来设置最少可工作的候选主节点个数(即节点获得的票数必须大于该值才能成为master)。建议设置为比如三个候选主节点,该配置项为(3/2)+1,来保证集群中有半数以上的候选主节点,没有足够的master候选节点,就不会进行master节点选举,减少脑裂的可能。协调节点,是一种角色,而,不能通过配置项来指定哪个节点为协调节点。...

2022-07-17 19:44:21 2387

原创 ES数据类型

用于存储多个JSON对象组成的数组,nested类型是object类型中的一个特例,可以让对象数组独立索引和查询。用于存储单个JSON对象,类似于JAVA中的对象类型,可以有多个值,比如LIST,可以包含多个对象。结果可以看到,这两组数据都能找出,因为每一组数据都是作为一个整体进行搜索匹配,而非具体某一条数据。对于GEO地理位置类型,分为地图Geo-point,和形状Geo-shape两种类型。数据库里的日期类型需要规范具体的传入格式,ES是可以控制,自适应处理。...

2022-07-17 19:23:59 3789

原创 ElasticSearch安装及基础操作

jdk必须是1.8及以上的版本,且要配置nodejs、python环境。

2022-07-17 18:37:19 443

原创 用maven下载依赖报错: Authorization failed for xxx 403 Forbidden

今天在新电脑上自己创建了一个新项目想运行一下,但是maven依赖一直拉不下来,就连最简单的springboot的依赖都拉不下来。我的maven用的是公司的配置文件,公司代理会阻止从 maven Central 等下载依赖第一种:不要使用公司的setting文件第二种:直接下载公司的项目,不要练手了。。。...

2022-07-10 15:12:49 3247

原创 网址链接大小写区分问题

今天发起一个请求的时候在地址栏输入了一个url地址,但是怎么都得不到正确的东西。url地址类似于。其实就是一个下载链接,但是怎么都下载不到正确的包。网址的基本结构是:[协议]😕/[域名]/[路径]。协议和域名部分不分大小写。路径部分是否区分大小写则不一定,要看具体网站后台是如何实现的。而我们的网关并没有对路径做大小写同化处理,所以大小写是敏感的。后台要求的其实是 ,我写成了 。导致后台无法正确读取指令。参数中的N换成大写,即...

2022-07-06 15:57:42 635

原创 Collectors.toMap使用解析

背景之前我们可能会遇到一些把List 转 Map 操作,在过去我们可能使用的是 for 循环遍历的方式。例如:Map<String, String> map = new HashMap<>();for (User user : userList) { map.put(user.getId(), user.getName());}在java8之后我们就可以用stream来操作集合了。使用在上面的例子,假如用stream流新特性来做就一行代码userList.

2022-03-29 17:46:13 4197

原创 com.sun.mail.util.MailConnectException:Couldn‘t connect to host, port:smtp.aliyun.com, 25; timeout

问题描述SpringBoot项目部署到阿里服务器,发送邮箱报错com.sun.mail.util.MailConnectException:Couldn't connect to host, port:smtp.aliyun.com, 25; timeout ,在本地没问题原因阿里云禁用了25端口号解决在yml文件中 将25端口改为465端口,并启用smtps协议mail: host: smtp.163.com username: ******@163.com

2022-03-20 20:46:48 1574

原创 Lombok的@Builder.Default失效

问题今天有一个类,有两个字段用了@Builder.Default 来修饰。但是当我往数据库插入时候发现这两个数据是null,但是我已经指定了默认值啊原因我创建这个对象的时候用的是new ,没走Lombok解决创建对象用xx.builder().build();...

2022-03-16 21:03:43 1898 1

原创 postman发送x-www-form-urlencoded格式的参数后端接收不到

问题postman发送x-www-form-urlencoded格式的参数后端接收不到,后端controller层已经写了@RequestParam 来接收参数原因我调用请求是用的get方法解决用post发起请求

2022-03-16 20:44:28 8455 1

原创 charles没有显示request和response

解决点击charles中的Preferences 然后在点击Viewers。取消勾选红框内容

2022-03-16 11:49:01 1091

原创 xx available:expected single matching bean but found 2:xx,xx

问题描述今天部署环境的时候一直部署失败,出现报错如下:‘PetWarRewardDao’ available: expected single matching bean but found 2: PetWarRewardDao,petWarRewardDaoSqlImpl但是我很纳闷,PetWarRewardDao的两个实现类我都标了注解然后使用的地方也是用了@Resource ,为什么还会报错呢?原因原来@resource 虽然是按照名字去注入,它默认是按照名称注入,如果没有指定特别的

2022-03-16 10:41:03 1269

原创 用Lombok注解class后发现class的boolean属性没有get方法

问题描述今天有这么一段代码@Data@Builder@AllArgsConstructor@NoArgsConstructorpublic class PetWarPeriodAwardDetail implements Serializable { private static final long serialVersionUID = -2969071324145901335L; /** * 伤害等级:{@link PetWarRewardEnum#getScor

2022-03-15 17:14:38 984

原创 Java8新特性之双冒号(::)

定义双冒号运算操作符是类方法的句柄,lambda表达式的一种简写。双冒号(::)运算符在Java 8中被用作方法引用(method reference),方法引用是与lambda表达式相关的一个重要特性。大概意思就是,使用lambda表达式会创建匿名函数, 但有时候需要使用一个lambda表达式只调用一个已经存在的方法(不做其它), 所以这才有了方法引用!使用使用场景案例详解①引用静态方法public class Colon{ @Test public void test()

2022-03-13 21:06:26 7375

原创 Redis性能压测

Redis 的性能测试工具,目前主流使用的是 redis-benchmark简介Redis 官方提供 redis-benchmark的工具来模拟 N 个客户端同时发出 M 个请求,可以便捷对服务器进行读写性能压测。语法redis 性能测试的基本命令如下:redis-benchmark [option] [option value]redis 性能测试工具可选参数如下所示:测试快速测试redis-benchmark在安装 Redis 的服务器上,直接执行,不带任何参数,即可进行测试。

2022-03-12 19:25:33 2726

原创 SNAPSHOT打包问题

问题描述今天在公司打一个SNAPSHOT包,但是发现最后deploy到release仓库里面去了,并没有到达snapshot的仓库原因我的version格式有误,以下为我原来的version格式<version>2.2.6-SNAPSHOT-xx</version>解决必须要以SNAPSHOT结尾<version>2.2.6-xx-SNAPSHOT</version>然后再重新打包即可...

2022-03-10 17:37:58 599 1

原创 IDEA checkstyle插件安装及使用

流程1、首先打开IDEA菜单栏的Settings中的plugins,搜索CheckStyle-IDEA并安装:2、安装重启IDEA之后,Settings下搜索Inspections,再查询CheckStyle,如果能查询到内容,说明安装成功:3、配置checkStyle 在Settings中搜索CheckStyle,按下图导入上一步骤新建的checkstyle.xml文件(version要选择对),文件在下方代码块中:checkStyle版本: 8.1,不同版本对于checkStyle.xml格式

2022-03-08 10:45:29 3533 1

原创 lua脚本以及redis慢查询日志

lua脚本lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua应用场景:游戏开发独立应用脚本Web应用脚本扩展和数据库插件Nginx + lua开发高性能web应用,限流、防止Sql注入…Redis使用lua脚本版本:自2.6.0起可用,通过内置的lua编译/解释器,可以使用EVAL命令对lua脚本进行求值。时间复杂度:取决于执行的脚本。使用Lua脚本的好处:减少网络开销。可以将多个

2022-02-20 15:27:48 994

原创 geo类型

概述Redis 3.2 中增加了对GEO类型的支持。GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作。应用场景:附近的人、摇一摇、附近的车、附近银行站点查询环境要求redis版本需要3.2及以上如果使用jedis操作redis,需要jedis版本为2.9及以上如果使用spring data redis操作redis,需要spring data redis版本

2022-02-19 20:36:28 466

原创 bitmap类型

介绍bitmap 存储的是连续的二进制数字(0 和 1),通过 bitmap, 只需要一个 bit 位来表示某个元素对应的值或者状态,key 就是对应元素本身 。我们知道 8 个 bit 可以组成一个 Byte,所以bitmap 本身会极大的节省储存空间。bitmap最大为2的32次方个bit常用命令setbit 、 getbit 、 bitcount 、 bitop应用场景适合需要保存状态信息(比如是否签到、是否登录…)并需要进一步对这些信息进行分析的场景。比如用户签到情况、活跃用户情况、用

2022-02-19 20:23:51 1149

原创 hash类型

介绍hash 类似于 JDK1.8 前的 HashMap,内部实现也差不多(数组 + 链表)。不过,Redis 的hash 做了更多优化。另外,hash 是一个 string 类型的 field 和 value 的映射表,特别适合用于存储对象,后续操作的时候,你可以直接仅仅修改这个对象中的某个字段的值。 比如我们可以 hash数据结构来存储用户信息,商品信息等等。其实它的结构可以看成 (K,(K,V)),只不过val中的K被称为filed常用命令hset,hmset,hexists,hget,h

2022-02-19 18:58:58 867

原创 string类型

Redis的Key的设计用:分割把表名转换为key前缀, 比如: user:第二段放置主键值第三段放置列名string字符串类型介绍string 数据结构是简单的 key-value 类型。虽然 Redis 是用 C 语言写的,但是 Redis 并没有使用 C 的字符串表示,而是自己构建了一种 简单动态字符串(simple dynamic string,SDS)。相比于 C 的原生字符串,Redis 的 SDS 不光可以保存文本数据还可以保存二进制数据,并且获取字符串长度复杂度为 O(1)

2022-02-19 18:48:25 463

分布式面试题总结总结总结总结

分布式面试题总结总结总结总结

2021-04-28

Mysql调优.xmind

学习Mysql调优时候所画的思维导图

2021-01-15

JVM底层原理课件PPT

JVM视屏教程对应的PPT课件。发布在这里保存一下。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2020-09-11

FTP服务器配置步骤详解.pdf

此资源是为了对应我的那篇博客,解决FTP服务搭建的详细问题,作为一个入门的教程来上传的。里面记载了在Linux服务器下如何搭建FTP服务的详细步骤,以及常见问题的解决方法。

2020-05-27

空空如也

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

TA关注的人

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