自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库索引设计原则与失效情况

在数据库设计和优化中,索引是一项至关重要的技术手段。它可以极大地提升查询效率,加快数据检索速度,但同时也需要遵循一些原则以及注意避免一些情况,以防止索引失效。

2024-02-08 21:48:17 474

原创 MySQL索引

在数据库系统中,索引是提高数据检索效率的关键。而MySQL的InnoDB存储引擎采用了B+树作为索引的数据结构,为数据库的高效运行提供了重要支持。本文将深入探讨InnoDB引擎的B+树实现,以及其带来的诸多优势。

2024-02-08 21:44:51 355

原创 redis是单线程的,但是为什么还那么快?

Redis(Remote Dictionary Server)作为一种开源的内存数据存储系统,以其卓越的性能和快速的响应时间成为流行的键值存储数据库。尽管它被称为单线程的数据库,但却能够实现惊人的性能。

2024-02-02 18:24:44 495

原创 Redis数据淘汰策略

Redis作为一种高性能的键值存储数据库,通常用于缓存和提高数据检索速度。然而,由于内存资源有限,当内存不足以容纳所有数据时,Redis就需要采取一些策略来删除部分数据,以确保新的数据能够被写入。这就引入了数据淘汰策略,Redis提供了8种不同的淘汰策略,每一种都有其独特的应用场景。

2024-02-02 18:19:50 660

原创 Redis数据过期策略

在Redis中,对数据设置有效时间是常见的需求,而数据过期后需要从内存中删除。为了实现这一目标,Redis采用了不同的数据删除策略,主要包括惰性删除和定期删除。本文将深入探讨Redis的数据过期策略,分别介绍惰性删除和定期删除,并探讨它们的优缺点以及如何配合使用。

2024-01-26 16:51:03 74

原创 Redis数据持久化:RDB与AOF对比及配置详解

在Redis中,作为缓存的数据持久化是至关重要的。为了实现数据的持久性,Redis提供了两种主要的持久化方式:RDB(Redis Database Backup)和AOF(Append-Only File)。本文将深入探讨这两种方式的原理、配置及优缺点。

2024-01-26 16:47:33 83

原创 布隆过滤器的原理

布隆过滤器是一种用于检索一个元素是否在一个集合中的数据结构,具有高效的查询性能和较小的内存占用。

2024-01-18 16:55:43 442

原创 缓存穿透、缓存击穿和缓存雪崩的解决方案

在缓存技术中,常常会遇到一些问题,如缓存穿透、缓存击穿和缓存雪崩。这些问题可能导致系统性能下降、数据库压力增大等,因此有必要了解这些问题的解决方案。

2024-01-18 16:51:24 389

原创 事务的四个特性、四个隔离级别以及数据库的常用锁

事务的四大特性,通常被称为ACID特性,是数据库管理系统(DBMS)确保事务处理的关键属性。

2023-12-11 21:38:38 1196 1

原创 CPU密集型和IO密集型与CPU内核之间的关系

合理配置线程池的核心线程数是一项重要的任务,它直接关系到系统的性能和资源利用率。

2023-12-07 21:56:11 493

原创 ELK的日志解决方案

进入容器的ik/config文件<? <?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd" > < properties > < comment > IK Analyzer 扩展配置 </ comment > <!--用户可以在这里配置自己的扩展字典 --> < entry key = " ext_dict " > </ entry > <!

2023-12-06 21:27:48 1933

原创 线程池,及7大参数,4大拒绝策略详解

Java中线程池的核心实现类是ThreadPoolExecutor,可以通过该类地构造方法来构造一个线程池。

2023-12-05 21:43:16 1073

原创 @Scheduled,Quartz,XXL-JOB三种定时任务总结

Quartz是一个开源的、功能强大且灵活的作业调度框架,它支持复杂的调度需求,作业持久化、集群部署等功能。它允许你按照设定的时间规则执行特定的任务,例如定时执行、循环执行、间隔执行等。Quartz可以与Spring等框架无缝集成,被广泛应用于企业级应用中。XXL-JOB是一个分布式任务调度平台,用于在分布式系统中进行任务调度和管理。XXL-JOB提供了可视化的任务管理界面、任务的动态添加、修改、删除等功能。它支持分布式部署,并提供了任务执行日志、任务运行状态等监控功能。

2023-12-04 21:36:29 2914

原创 docker内容整理

检查之前是否安装过docker,如果有使用yum remove docker卸载安装yum工具配置阿里云镜像,添加docker引擎的yum源更新CentOS列出docker源安装docker检查docker版本号启动docker,并设置自启配置本地镜像库从默认网络获取docker镜像太慢,为了提高速度,可以配置国内的镜像库,可同时配置多个配置完成之后重启docker设置docker的静态ip目的:解决docker运行过程中ip的固定。

2023-12-03 22:31:42 2085

原创 docker配置redis主从、哨兵集群

在/usr/local/software/redis/文件夹下建立如下的文件夹、文件。

2023-12-03 21:51:33 881

原创 docker配置redis插件

bloom filter作者未编译打包,需要自行编译。将编译好的插件拷贝到docker的redis容器中。拷贝libredis_cell.so文件到容器中。进入文件夹,查看文件,里面有Makefile文件。在linux中解压插件。检查插件是否安装成功。输入make进行编译。

2023-12-03 21:14:04 499

原创 docker搭建canal

canal是监听主mysql的binlog日志,实现和从一样能够监听到数据的变化,进而写进进行设置。

2023-12-03 20:56:02 335

原创 docker搭建rabbitmq、配置延迟队列插件

消息队列的作用:消峰、解耦、异步。

2023-12-03 20:23:13 839

原创 docker搭建nginx实现负载均衡

查询安装准备创建一个空的nginx文件夹里面在创建一个nginx.conf文件和conf.d文件夹运行映射之前创建的文件夹端口:8075映射80。

2023-12-03 19:53:20 891

原创 synchronized的实现原理

大佬写的太好了建议看大佬的。在了解关键字的底层原理前,需要先简单了解下Java的内存模型,看看关键字是如何起作用的。这里的本地内存并不是真实存在的,只是Java内存模型的一个抽象概念,它包含了控制器、运算器、缓存等。同时Java内存模型规定,线程对共享变量的操作必须在自己的本地内存中进行,不能直接在主内存中操作共享变量。这种内存模型会出现什么问题呢?该问题Java内存模型是通过关键字和volatile关键字就可以解决,那么关键字是如何解决的呢,其实进入块就是把在。

2023-11-30 21:50:18 778

原创 拦截器、过滤器、AOP的区别和联系md

过滤器,顾名思义就是起到过滤筛选作用的一种事物,只不过相较于现实生活中的过滤器,这里的过滤器过滤的对象是客户端访问的web资源,也可以理解为一种预处理手段,对资源进行拦截后,将其中我们认为的杂质(用户自己定义的)过滤,符合条件的放行,不符合的则拦截下来。过滤器常见的使用场景。

2023-11-29 21:00:49 965

原创 Java三种代理模式:静态代理、动态代理和CGLIB代理

代理模式是23种设计模式种的一种。代理模式是一种结构型设计模式,它允许为其他对象提供一个替代品或占位符,以控制对这个对象的访问。代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强。

2023-11-28 21:21:50 805

原创 Spring解决循环依赖的方案

循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。

2023-11-27 21:21:27 420

原创 RPC和http的区别

通用定义的http1.1协议的tcp报文包含太多废信息,一个POST协议的格式大致如下即使编码协议也就是 body 是使用二进制编码协议,报文元数据也就是header头的键值对却使用了文本编码,非常占字节数。如上图所使用的报文中有效字节数仅仅占约 30%,也就是70%的时间用于传输元数据废编码。当然实际情况下报文内容可能会比这个长,但是报头所占的比例也是非常可观的。这也就是为什么后端进程间通常会采用 自定义tcp协议 的 rpc 来进行通信的原因。不单效率那么简单。

2023-11-25 18:32:06 1099

原创 设计模式—build模式

建造者模式强调的是将一个复杂对象的构建过程分步骤进行,使得构建的过程灵活,可以根据需要定制不同的表示。建造者模式通常涉及一个导演类来指导构建的过程。工厂模式强调的是定义一个接口用于创建对象,但将实例化的步骤延迟到子类中。工厂模式适用于无法预先知道具体类的情况,通过子类来实现具体对象的创建。

2023-11-23 21:14:47 595

原创 http协议和webSocket协议之间的区别与特点

http协议和webSocket协议之间的区别与特点

2023-11-22 20:20:59 280

原创 ConcurrentHashMap和HashMap的区别

引入ConcurrentHashMap是为了同步集合Hashtable之间有更好的选择,Hashtable与HashMap,ConcurrentHashMap主要区别于HashMap不是同步的,线程不安全的和不适合应用于多线程并发环境下,而ConcurrentHashMap是线程安全的集合容器,特别是在多线程和并发环境中,通常作为Map的主要实现。ConcurrentHashMap避免了对全局加锁改成了局部加锁操作。

2023-11-21 21:21:19 50

原创 计算机网络的OSI七层模型

七层模型(Seven-Layer Model),也被称为OSI模型(Open Systems Interconnection Model),是计算机网络通信的核心架构。它将网络通信分为七个不同的层次,每个层次都有特定的功能和任务。七层模型的每一层都有独立的功能,通过层与层之间的交互和协作,实现了可靠的网络通信。这种分层的设计使得网络通信的开发、管理和维护更加简单和灵活。

2023-11-20 21:11:45 183 1

原创 Docker 部署 GitLab

Docker 部署 GitLab

2023-11-19 20:59:33 712 2

原创 生产者消费者消费者模型

生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者,所以为了达到生产者和消费者生产数据和消费数据之间的。如果缓冲区为空,那么消费者线程阻塞。

2023-10-30 20:48:11 235 1

原创 数据库分表分库的原则

关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量缓解单一数据库的性能问题,从而达到提升数据库操作性能的目的。

2023-10-28 18:35:29 104 1

原创 Threadlocal对象的使用

Threadlocal对象的使用

2023-10-25 21:09:02 101 1

原创 CAS(compare and swap)

cas三大问题

2023-10-24 20:31:42 73

原创 搭建nexus私服部署项目

搭建nexus私服部署项目

2023-10-23 20:24:02 51

原创 RBAC-基于角色权限的模型

RBAC-基于角色权限的模型

2023-10-21 18:28:02 42 1

原创 redis中的五个常用类

redis中的五个常用类

2023-10-19 20:52:06 45

原创 Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用

spring缓存注解

2023-10-18 19:53:44 179

原创 SpringMVC的工作流程

SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC的架构模式思想,将Web层进行指责解耦,并管理应用所需的生命周期,为简化日常开发,提供了很大便利。Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或 JavaBean组件,不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

2023-10-17 20:21:17 191

原创 MySQL数据库引擎-Inodb,MyISAM

​ 数据库引擎简单来说就是一个"数据库发动机"。当你访问数据库时,不管是手动访问,还是程序访问,都不是直接读写数据库文件,而是 通过数据库引擎去访问数据库文件。以关系型数据库为例,你发SQL语句给数据库引擎, 数据库引擎解释SQL语句,提取出你需要的数据返回给你。因此,对访问者来说,数据库引擎就是SQL语句的解释器。正式来说,数据库引擎是用于存储、处理和保护数据的核心服务。

2023-10-16 20:37:57 97 1

原创 搭建maven私服

Linux搭建maven私服

2023-10-12 21:33:51 100

nexus-3.61.0-02-unix.tar.gz

nexus

2023-10-12

空空如也

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

TA关注的人

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