自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql-count(1)、count(*)和count(列名)的区别?

count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。- count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL。- count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL。- 如果表有多列,且不存在主键,则count(1)效率优于count(*)- 如果列为主键,count(列名)效率优于count(1)

2024-10-24 20:01:58 434 1

原创 StringBulider和StringBuffer的底层源码剖析

StringBuilder 和 StringBuffer 都继承自 AbstractStringBuilder,并共享其核心实现,包括初始容量和扩容机制。线程安全性:StringBuilder 不进行同步处理,而 StringBuffer 对所有方法都进行同步处理。扩容机制:扩容策略是原数组长度的两倍加2,当容量不足时扩容,并通过 Arrays.copyOf 方法复制原数组内容。

2024-10-23 21:42:01 745

原创 SpringBoot集成Minio实现文件上传

以上则为简单的MinIO使用案例,其还有更多强大的功能,还包括数据加密、访问控制、版本管理等功能。官方提供的 SDK非常全面官方文档,可以很轻松地在应用中完成整合。总之MinIO是一个非常强大的且可靠对象存储系统,值得信赖和推广。

2024-10-23 21:22:34 963

原创 MinIO安装教程

Minio是一个开源的、云原生的分布式对象存储系统,是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。它一大特点就是轻量,虽然轻量,却拥有着不错的性能。使用简单,功能强大,支持各种平台,单个文件最大5TB,兼容 Amazon S3接口,提供了 Java、Python、GO等多版本SDK支持。

2024-10-23 21:12:27 2647

原创 Mysql-事务(Transaction)详解

事务(Transaction),就是将一组SQL语句放在同一批次内去执行,如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行。

2024-10-21 20:17:11 1211

原创 Swagge详解,SpringBoot项目集成Swagger

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。使用Swagger,就是把相关的信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述文件可以去更新接口文档,以及生成各端代码。而Springfox-swagger,则可以通过扫描代码去生成这个描述文件,连描述文件都不需要再去维护了。所有的信息,都在代码里面了。代码即接口文档,接口文档即代码。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。

2024-10-21 19:24:01 1111

原创 Java 中 String、StringBuffer 和StringBuilder的区别

String是否可变不可变可变可变线程安全性线程安全线程安全线程不安全性能较低(频繁修改时性能差)较低(有同步开销)较高使用场景字符串内容少量修改多线程环境下的字符串修改单线程环境下的字符 串修改。

2024-10-17 21:07:45 648

原创 反射-Class类详解

在Java中,除了int等基本类型外,Java的其他类型全部都是class(包括interface)。Java 反射机制是 Java 语言的一个重要特性。:是指把源码交给编译器编译成计算机可以执行的文件的过程。在 Java 中也就是把 Java 代码编成 class 文件的过程。编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本进行操作。比如:检查语法错误。:是把编译后的文件交给计算机执行,直到程序运行结束。所谓运行期就把在磁盘中的代码放到内存中执行起来。

2024-10-17 13:32:43 1221

原创 乐观锁与悲观锁

乐观锁和悲观锁是并发控制领域常用的两种策略,它们用于管理多个线程或进程同时访问共享资源的情况,以防止数据不一致或竞态条件的发生。

2024-10-17 13:10:40 596

原创 什么是深拷贝和浅拷贝

●拷贝对象时,仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象,也就是说拷贝对象和原对象共用同一个内部对象;●实现方式:实现Cloneable 接口,重写clone()方法;测试。

2024-10-16 19:27:39 276

原创 分布式锁-redis实现方案

分布式锁(Distributed Lock)是分布式系统中的一种同步机制,用于控制对共享资源的访问。在分布式环境中,由于多个服务实例或进程可能同时运行在不同的服务器上,传统的单机锁机制(如Java中的synchronized关键字或ReentrantLock)无法跨进程或跨服务器工作,因此需要一种新的机制来实现跨节点的同步控制,这就是分布式锁。

2024-10-16 19:03:01 1225

原创 Redis-持久化策略

Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!

2024-10-14 18:40:36 772

原创 Redis-删除策略

数据删除策略的目标:在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄露。Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过。优点2:内存压力不是很大,长期占用内存的冷数据会被持续清理。优点1:CPU性能占用设置有峰值,检测频度可自定义设置。总结:周期性抽查存储空间 (随机抽查,重点抽查)每秒花费固定的CPU资源维护内存。不分时段占用CPU资源,频度高。问:过期的数据真的删除了吗?延时执行,CPU利用率高。

2024-10-13 21:57:21 399

原创 Redis-内存淘汰(逐出)策略

当新数据进入redis时,如果内存不足怎么办? Redis使用内存存储数据,在执行每一个命令前,会调freeMemoryIfNeeded()检测内存是否充足。如果内存不满足新加入数据的最低存储要求,redis要临时删除一些数据为当前指令清理存储空间。清理数据的策略称为逐出算法。

2024-10-13 10:12:57 1029

原创 Redis-缓存雪崩,缓存击穿,缓存穿透,缓存预热

缓存雪崩缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。缓存击穿缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。缓存穿透缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。缓存预热“宕机”服务器启动后迅速宕机缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请

2024-10-13 09:49:11 1035

原创 Redis-安装,常用数据类型使用

Redis是一个基于内存的非关系型数据库,对数据的读写操作都在内存中完成,因此速度非常快,用作缓存,消息队列,分布式锁等场景。 Redis的数据类型:例如String(字符串),Hash(散列),List(列表),Set(集合),Zset(有序集合),Bitmaps(位图),HyperLogLog(基数统计),GEO(地理信息),Stream(流)。 Redis支持事务,持久化,Lua脚本,多种集群方案(主从复制模式,哨兵模式,切片机群模式),发布订阅模式,内存淘汰机制,

2024-10-04 14:19:06 1246

原创 SpringBoot-自动配置原理

在没有SpringBoot情况下,我们引入第三方的依赖之后,需要手动配置,比如需要手动将引入的第三方依赖通过xml文件或注解的方式注入到 Ioc 容器中。并可能需要对注入到Ioc容器中的bean进行一些配置,非常麻烦。但是,在Spring Boot 中,我们直接引入一个 starter 即可。

2024-10-01 20:54:16 1237

原创 ElasticSearch—倒排索引

倒排索引的概念是基于MySQL这样的正向索引而言的,是全文搜索引擎的核心数据结构,其主要作用是从文档中提取关键词,并建立关键词到文档的映射关系。这种结构与传统的正排索引相反,因此称为倒排索引。在倒排索引中,每个关键词都关联着包含该关键词的文档列表,这使得搜索操作能够迅速定位包含特定关键词的文档,从而大幅提高查询效率。

2024-09-27 13:43:31 779

原创 Spring中Bean的生命周期

Bean的生命周期大致分为四个阶段:实例化--属性注入--初始化--销毁。

2024-09-22 19:14:18 743

原创 Spring中的循环依赖

循环依赖是指多个实体之间相互依赖形成闭环。因为Spring中的Bean存在一系列的生命周期,所以会出现循环依赖的问题。例如:BeanA依赖于BeanB,BeanB又依赖于BeanA。

2024-09-17 18:38:05 1142 2

空空如也

空空如也

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

TA关注的人

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