自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MYSQL慢日志监控

一般来说监控日志要在mysql的日志文件my.cnf里配好,但是临时监控的话,用sql命令也可以,重启就失效。然后使用 mysqldumpslow 解析慢查询日志文件,这是mysql官方提供的慢查询日志分析工具。: 抽象后的SQL(N表示数字,S表示字符串)(14.75s) - 总执行时间。(0.24s) - 总锁定时间。1.23s - 平均执行时间。0.02s - 平均锁定时间。10.0 - 平均返回行数。(120) - 总返回行数。: 执行次数 (12次)

2025-07-29 15:01:59 232

原创 Quartz定时调度框架使用

【代码】Quartz定时调度框架使用。

2025-07-25 13:56:12 198

原创 Hbase三千万级数据迁移至StarRocks方案及实现

之前项目的设备数据都是存在 Hbase 中,但是后期增加设备数据分析的时候,大数据量场景下 Hbase 实在是搞不动了,得搞个新方案。选来选去 StarRocks 不错,支持 sql(原先搞Hbase还要额外的 Phoenix 的支持,而且 Phoenix 也已经不再维护了),非常适合复杂的数据分析,虽然写入性能不如Hbase,但对于当前业务来说完全够用了,然后就是把已有的三千万条数据弄到StarRocks里。

2025-07-25 12:03:06 336

原创 Spring事务传播行为

80%场景使用REQUIRED需要事务隔离使用REQUIRES_NEW部分回滚需求使用NESTED传播行为决策流程。

2025-07-22 11:42:42 308

原创 SpingAOP失效场景

当原型Bean被单例Bean引用时,如果单例Bean初始化时就注入了原型Bean,后续获取的始终是同一个实例(AOP可能表现异常)在非Web环境或请求上下文未激活时,相关AOP功能会失效。在@PostConstruct方法中调用被代理方法。CGLIB通过子类化,但无法覆盖父类私有方法。Spring AOP 基于代理机制,当。:CGLIB无法重写final方法。JDK代理基于接口,不涉及私有方法。@Bean方法中直接调用被代理方法。时,会绕过代理直接调用方法。:无法被动态代理覆盖。直接new创建的对象。

2025-07-22 09:23:01 350

原创 jstat -gcutil参数说明

2、元空间(M) 92.47%接近危险阈值(默认MaxMetaspaceSize)1、老年代使用率(O) 80.88%已接近JVM默认的CMS回收阈值(92%)

2025-07-17 14:12:46 254

原创 线程池参数说明

2025-07-15 10:16:18 327

原创 mysql百万级数据量导出方案

2025-07-11 14:54:42 262

原创 CPU飙升典型问题速查

【代码】CPU飙升典型问题速查。

2025-07-11 14:28:42 143

原创 数组(Array)与列表(ArrayList)的区别及使用场景

例如:System.arraycopy(), JNI调用等。需要存储大量基本类型(int, double等)ArrayList需要装箱/拆箱,会有性能开销。许多Java原生API和第三方库要求使用数组。在需要极致性能的循环或计算密集型操作中。例如:数学计算、图形处理、游戏开发等。在内存受限的环境中(如嵌入式系统)当集合大小在生命周期内不会改变时。例如:一周的天数、棋盘格子等。例如:矩阵运算、图像像素存储。需要真正的多维数组时。

2025-07-08 10:20:00 260

原创 Redis为什么比Mysql快那么多

虽然这个已经快是一个常识一样的结论,但是一直都没有好好总结过具体原因,这里搜了资料完善的记录了一下。MySQL 即使有 Buffer Pool 缓存,仍依赖磁盘持久化(WAL、刷脏页)Redis 的 AOF 可配置为每秒同步(fsync),牺牲部分持久性换性能。Redis 的 Hash 结构可直接通过 HGET 获取字段(O(1))MySQL 即使有索引,仍需多次磁盘寻址(B+Tree 深度影响性能)MySQL 的并发控制(MVCC、锁)带来额外开销。:Redis + MySQL 组合(读写分离)

2025-06-03 10:36:02 1116

原创 IK分词器的使用

最近遇到一个需求,要对用户搜索记录进行分词,自己实现起来肯定比较麻烦,也已经有了很多现成的框架,最后采用了比较流行的IK Analyzer。

2025-05-30 18:20:10 165

原创 大文件分片上传实现

先调用 /check 接口检查哪些分片已上传。所有分片上传完成后调用 /merge。按 MD5 和分片索引组织存储结构。上传未完成的分片到 /chunk。计算文件 MD5 作为唯一标识。将文件分片(如每片 5MB)接收分片并存储在临时目录。合并时按顺序组合所有分片。

2025-04-11 11:32:36 270

原创 Java获取指定路径文件夹下所有文件的三种方法

【代码】Java获取指定路径文件夹下所有文件的三种方法。

2025-04-08 10:57:07 1626

原创 Redis基于HyperLogLog实现的UV统计

HyperLogLog 是 Redis 提供的一种基数估算算法,用于统计集合中不重复元素的数量,适用于大规模用户访问近似统计。UV:网站的独立访客数。

2025-04-07 17:29:35 195

原创 通过Redis实现滑动时间窗口的实时排行榜

Sorted Set 是一个有序集合,每个元素都有一个分数(score),可以用来存储文章的PV。最后将排行榜数据写入缓存,并补充定时更新策略即可,避免高并发查询排行榜场景造成Reids压力过大。每次访问通过 ZADD 更新文章PV,合并多个时间窗口后,通过 ZREVRANGE 查询排行榜。滑动时间窗口的实时排行榜即统计最近一段时间内的数据,并实时更新排行榜。使用 Redis 的 Key 过期机制,为每个时间窗口创建一个独立的 Sorted Set。最近遇到的项目刚好有个这样的需求,整理了下大致实现思路。

2025-04-03 16:48:37 500

原创 多线程读写(读>>写)并发问题解决方案

在高并发场景下,如果读线程的数量远远大于写线程,传统的锁机制(如互斥锁)可能会导致读线程的性能瓶颈,因为读操作本身是线程安全的(多个线程可以同时读取共享数据)。Copy-On-Write 是一种优化技术,写操作会创建数据的副本,读操作直接访问原始数据。读写锁是一种特殊的锁,允许多个读线程同时访问共享资源,但写线程需要独占访问。无锁编程通过原子操作(如 CAS)实现并发控制,避免使用锁。

2025-04-03 15:08:25 369

原创 Redis通过List数据结构实现用户搜索历史记录功能

现在做的项目有个业务是保存用户的搜索历史记录,网上查了下redis的list结构比较适合历史记录这个功能,实现过程特此记录一下。

2025-03-27 17:22:00 228

原创 Redis不同数据结构的适用场景

最简单的键值存储,值可以是字符串、整数或二进制数据(最大512MB)。:有序、可重复的元素集合,支持双向操作(LPUSH/RPUSH)。:极低内存占用下估算集合的唯一元素数量(误差约0.81%)。:电商中存储商品的多个字段(如颜色、价格、库存)。:类似Kafka的消息队列,支持消费者组和多播。:无需精确统计的场景(如搜索关键词去重)。:无序、唯一的元素集合,支持交并差运算。:元素按分数(score)排序,且唯一。:键值对集合,适合存储对象属性。:快速更新和查询对象的部分字段。:存储经纬度,支持位置查询。

2025-03-27 16:16:24 1678

原创 Mysql死锁的产生、避免、解决方案

通过按顺序访问资源、减少事务粒度、使用索引等方法,破坏死锁产生的条件。

2025-03-18 11:25:11 799

原创 Mysql并发问题、事务隔离级别、锁汇总理解

为每一行数据维护多个版本:每次对数据进行修改时,不会直接覆盖原有数据,而是创建一个新的版本。读操作读取历史版本:读操作可以读取事务开始时的数据版本,而不需要等待写操作完成。写操作创建新版本:写操作会生成一个新的数据版本,不会阻塞读操作。

2025-03-17 18:02:59 1504

原创 Mysql三大日志文件

Undo Log 是 InnoDB 存储引擎特有的日志,用于记录事务执行前的数据状态。

2025-03-17 15:41:21 1517 1

空空如也

空空如也

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

TA关注的人

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