自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 盘点各种类型的数据库(除了关系型和非关系型数据库)

数据库可以根据不同的标准(如数据模型、用途、架构等)分为多种类型。:基于表格结构,使用 SQL(结构化查询语言),支持 ACID 事务。:兼顾分布式与 ACID,如 TiDB、CockroachDB。高速读写,如 Redis、Memcached、SAP HANA。:用于 AI 向量检索,如 Milvus、Pinecone。:支持多种数据模型,如 ArangoDB(文档+图)。:如 BigchainDB(存储区块链数据)。单机部署,如传统 MySQL、Oracle。:优化时间序列数据(如传感器、日志)。

2025-04-02 17:15:05 336

原创 Redis场景问题3:缓存雪崩

Redis 缓存雪崩是指在 Redis 缓存中,大量的缓存数据在同一时间内失效,导致大量请求直接涌向数据库,从而可能使数据库不堪重负,甚至引发系统崩溃的情况。

2025-03-29 10:33:08 239

原创 Redis场景问题2:缓存击穿

Redis 缓存击穿是指在缓存系统中,大量请求同时访问一个不存在于缓存中(一般是因为缓存过期或者数据未被加载到缓存)但在数据库中存在的热点数据,从而导致这些请求直接穿透缓存层,涌向数据库,可能造成数据库压力过大甚至崩溃的情况。

2025-03-29 10:31:25 677

原创 Redis场景问题1:缓存穿透

Redis 缓存穿透是指在缓存系统(如 Redis)中,当客户端请求的数据既不在缓存中,也不在数据库中时,每次请求都会直接穿透缓存访问数据库,从而给数据库带来巨大压力,甚至可能导致数据库崩溃。下面为你详细介绍其产生原因、解决方案以及示例代码。

2025-03-29 10:27:16 380

原创 剖析 Redis 缓存更新策略:保障数据一致性与系统性能的平衡

Redis 作为一款高性能的键值对存储数据库,广泛应用于缓存场景,极大地提升了系统响应速度和吞吐量。然而,缓存与后端数据源(如数据库)之间的数据一致性问题一直是个挑战,合理的缓存更新策略至关重要。这篇博客将带你深入探讨 Redis 缓存更新的多种策略及其优缺点,助你在不同业务场景下做出明智抉择。

2025-03-29 10:07:05 658

原创 简单聊聊Oracle和MySQL数据库的区别和使用场景

对于IT的技术人员,MySQL是非常熟悉的开源数据库,在各个行业被广泛应用。但是对于Oracle数据库,很多专业的IT从业人员不太了解,今天就来聊一聊Oracle和MySQL的一些区别。

2025-03-26 21:53:50 909

原创 MyBatis一级缓存和二级缓存

在开发基于 MyBatis 的应用时,缓存是提升性能的关键因素之一。MyBatis 提供了一级缓存和二级缓存,合理使用它们可以显著减少数据库的访问次数,提高系统的响应速度和吞吐量。本文将深入探讨 MyBatis 一级缓存和二级缓存的工作原理、使用方式以及注意事项。MyBatis 的一级缓存和二级缓存是提升应用性能的重要手段。一级缓存适用于在同一个SqlSession中多次执行相同查询的场景,而二级缓存适用于多个SqlSession共享数据的场景。

2025-03-23 15:31:18 429

原创 Mybatis延迟加载机制

MyBatis 的延迟加载(也称为懒加载)是一种优化策略,它允许在真正需要数据时才去数据库中查询,而不是在一开始就把所有关联数据都加载出来。这种机制能显著提升应用的性能,尤其是在处理大量关联数据时。下面详细介绍 MyBatis 延迟加载的机制。

2025-03-23 10:55:40 219

原创 MyBatis执行流程

通过这些步骤,MyBatis 实现了 Java 代码与数据库之间的高效交互。、获取 Mapper 接口代理对象、执行 SQL 语句、事务管理以及关闭。MyBatis 支持使用 Mapper 接口来执行 SQL 语句。是 MyBatis 与数据库交互的会话对象,类似于 JDBC 中的。综上所述,MyBatis 的执行流程主要包括加载配置文件、创建。在执行 SQL 语句的过程中,MyBatis 支持事务管理。通过 Mapper 接口代理对象调用方法,或者直接使用。方法可以获取 Mapper 接口的代理对象。

2025-03-23 10:38:54 593

原创 Spring框架核心注解(Spring,SpringMVC,SpringBoot)

1. Spring核心注解2. SpringMVC核心注解3. SpringBoot核心注解组合了注解,实现配置文件的功能打开自动配置的功能,也可以关闭某个自动配置的选Spring组件扫描。

2025-03-23 10:11:15 795

原创 SpringBoot自动装配原理(重要)

Spring Boot 的自动装配原理是其核心特性之一,它极大地简化了 Spring 应用的配置过程。

2025-03-23 09:57:33 391

原创 Spring事务失效场景

在使用 Spring 事务时,虽然它为我们提供了便捷的事务管理功能,但在某些情况下,事务可能会失效,导致数据一致性问题。以下是一些常见的 Spring 事务失效场景及原因分析:Spring 的声明式事务是基于 AOP 实现的,而 AOP 默认只能对 public 方法进行代理增强。如果将注解放在非 public 方法上,事务会失效。2. 自调用问题当一个类内部的方法调用另一个被注解的方法时,事务会失效。这是因为 Spring 的事务管理是基于代理对象实现的,自调用时并没有通过代理对象,而是直接在目

2025-03-23 00:01:33 435

原创 深入了解Spring事务及其使用场景

在企业级应用开发中,数据的一致性和完整性至关重要。Spring 事务管理作为 Spring 框架的核心功能之一,为开发者提供了一种便捷且强大的方式来确保数据库操作在逻辑上的原子性。无论是简单的单数据库事务,还是涉及多个数据源的分布式事务,Spring 都提供了相应的解决方案。本文将深入探讨 Spring 事务的原理、应用场景,并通过实际例子展示其具体用法。这里暂时只讨论单数据库的情况,多个数据库需要使用Spring Cloud分布式事务组件像Seata,这里就不过多赘述。

2025-03-22 23:31:08 909

原创 深入理解 Spring AOP:原理、场景与实践

在现代 Java 开发中,面向切面编程(AOP)已经成为一种不可或缺的技术,而 Spring AOP 则是 Spring 框架中实现 AOP 的核心模块。它允许我们将横切关注点(如日志记录、事务管理、权限控制等)从业务逻辑中分离出来,以一种非侵入式的方式增强系统功能,提高代码的可维护性和可扩展性。本文将深入探讨 Spring AOP 的原理、应用场景,并通过实际例子展示其用法。切面是横切关注点的模块化,它包含一组通知(Advice)和切点(Pointcut)。例如,日志记录作为一个横切关注点,可以定义为一个

2025-03-22 23:08:39 1436

原创 Java对象的hashcode

如果存在相同的hashcode值,就调用equals方法与新的元素进行比较,相同就直接覆盖,不相同就散列到其他的地址。对于equals大部分Java程序员都不陌生,它通常是比较两个对象的内容(值)是否相等(==双等于比较对象的内存地址),如果是Object中的equals方法默认就是比较内存地址(在没有被重写的情况下和==一样)。,因为如果我们只重写equals方法,就有可能导致hashcode不相同,这样就会导致这个类无法和所有的集合类一起工作。类的两个重要方法,它们在处理对象比较和哈希集合(如。

2025-03-22 22:46:25 480

原创 Spring单例Bean的线程安全

因为多个线程会共享同一个实例。如果 Bean 有状态(成员变量),需要采取额外的措施来保证线程安全,例如:使用无状态 Bean。使用线程安全的类(如。

2025-03-16 23:27:13 653

原创 Java集合 - ArrayList

ArrayList是基于动态数组实现的集合,支持随机访问和动态扩容。默认初始容量为 10,扩容时容量增加为原来的 1.5 倍。非线程安全,适合单线程环境使用。在多线程环境下,可以使用或来保证线程安全。适用于需要频繁访问元素但较少插入和删除的场景。

2025-03-16 22:37:30 346

原创 Java集合 - HashMap

HashMap是 Java 集合框架中的一个重要类,位于java.util包中。它实现了Map接口,基于哈希表的数据结构来存储键值对(key-value pairs)。HashMapnull,并且是非同步的(非线程安全的),null键在HashMap中只能存在一个。

2025-03-16 19:00:10 1132

原创 分享国内外开源的React项目

作为万千React开发者的一员,在国内大部分前端项目都是Vue的情况下,还是精挑细选地从中找出了不错的React开源项目,并且都通过git拉取源码到本地进行了安装和运行。觉得不错的也可以给作者star。

2024-05-16 09:31:18 3064 1

原创 总结JavaScript的关于时间和日期的用法和方法

在JavaScript中,处理时间和日期主要依赖于Date对象。这个对象提供了许多方法和属性来获取、设置以及操作日期和时间。

2024-05-16 09:06:07 246

原创 IDEA编辑器如何让package显示分层结结构

在IDEA项目中,选择左边project目录右上方的设置图标,然后在打开的菜单栏中选择Tree Appearance(树形外观),如果你的项目package无法显示分层结构,是因为Flatten Packages被选中了。在大型项目中,代码的分层管理至关重要。通过合理配置,我们可以清晰地看到各个package之间的层级关系,提高代码的可读性和维护性。对于很多初学者或者刚刚接触IDEA开发工具的学员,对于IDEA的分层目录可能很迷惑,这里我告诉大家如何设置项目中package的分层结构。

2024-01-06 15:00:22 1297 1

原创 用React和Laravel实现一个在线答题试卷模块,包括单选,多选,判断和填空题(下)

用react和laravel实现一个在线考试试卷模块,包括单选,多选,判断和填空题,包含前端后端,mysql数据库的设计和使用

2024-01-06 14:17:09 2092 1

原创 在windows上安装Java和JDK(2024版)

windows上安装Java和JDK21

2024-01-02 10:39:03 772

原创 用React和Laravel实现一个在线答题试卷模块,包括单选,多选,判断和填空题(上)

在线考试模块在现代教育和培训领域的应用越来越广泛。这个模块需要后端在数据库中获取题目并通过前端的请求发送给前端,然后将其渲染到页面上。提交考试结果后记录用户的选择并计算考试分数,然后保存到数据库中。根据此项目要求,用户可以没有限制的进行考试,每一次考试就会更新考试成绩。

2024-01-02 09:41:33 900

原创 ECharts初步认识和简单介绍

ECharts 是一个强大的开源 JavaScript 数据可视化库,由百度开发和维护。它提供了丰富的图表类型和高度的定制能力,使得开发者能够轻松地在网页上创建出各种美观、交互性强的数据可视化效果。折线图(区域图)柱状图(条形图)散点图(气泡图)K 线图饼图(环形图)雷达图(填充雷达图)和弦图力导向布局图地图仪表盘漏斗图事件河流图等。

2023-12-25 18:58:21 406

原创 总结CommonJS和ES6使用模块化导出和导入的方法

语法差异:CommonJS使用module.exports和require语法,而ES6使用export和import语法。默认导出:CommonJS没有默认导出功能,而ES6可以通过export default导出默认模块。命名导出:CommonJS没有命名导出功能,而ES6可以通过export关键字导出多个模块,并在导入时使用具体的名称。动态导入:CommonJS不支持动态导入,而ES6可以使用import()函数进行动态导入。

2023-12-19 19:40:08 935 1

原创 React项目打包后使用serve -s build错误

经过一番搜索,原因是node版本和serve不兼容(又是node版本的问题!)serve是最新版14,而node版本是13。用nvm(node版本管理工具)升级到18.18.0就可以了。

2023-12-12 17:06:39 599

原创 React生命周期钩子函数学习总结

在React类组件中,生命周期函数是贯穿整个React程序运行周期的函数,继承React.Component中,不需要单独调用。虽然现在多数新的React项目用函数组件较多,但还是很多老项目由大量的类组件构成(比如我现在工作维护的项目)所有对生命周期函数有个全面的了解是很重要的。

2023-10-31 20:39:35 154 1

原创 使用Java实现TCP网路通信

TCP(Transmission Control Protocol)是在网路层的一种的通信协议。TCP协议会在网路通信的两端各建立Socket对象,通信前要保证连接已建立。TCP是通过Socket产生来进行网路通信的。TCP连接的建立是通过进行的。通过的过程,客户端和服务器建立基于TCP协议的通信连接。

2023-07-25 14:22:22 986

原创 使用Java实现udp协议的单播

在计算机网络tcp/ip模型中,udp和tcp处在第三层,也就是网路层中。而udp协议和tcp协议是网路层中最重要和使用最多的协议。UDP协议(User Datagram Protocol)是的通讯协议,特点是速度快,有大小的限制(64kb),数据不安全,已丢失;TCP协议(Transmission Control Protocol)是的协议,特点与UDP互补,速度慢,没有大小限制,数据安全不易丢失。和。单播顾名思义就是点对点的通信,是一个计算机对另一个计算机传递信息;

2023-07-19 01:35:09 330

空空如也

空空如也

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

TA关注的人

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