摘要: 在 Java 面试中,被问到“定时任务如何保证只在单节点执行”,面试官主要考察你对分布式锁、分布式调度框架以及高可用的理解。 在单体架构时,定时任务直接用 @Scheduled 或 Quartz 就够了。但在多节点(集群)部署下,如果每个节点都执行,就会导致任务重复执行(比如重复扣款、重复发短信)。 阅读全文
posted @ 2026-10-19 16:18 ~码铃薯~ 阅读(8) 评论(0) 推荐(0)
摘要: 红锁: 可以按“是什么 → 为什么需要 → 怎么实现 → 有什么缺陷 → 工程上怎么选”来答。 红锁是什么? 红锁 RedLock 是 Redis 作者提出的一种多节点分布式锁算法。它不是 Redis 内置命令,而是一种算法思想,Java 里常用 Redisson 的 RedissonRedLock 阅读全文
posted @ 2026-10-10 08:21 ~码铃薯~ 阅读(12) 评论(0) 推荐(0)
摘要: 基于 Redis 实现分布式锁,在 Java 面试中通常被归纳为三种方式:手写基础版、Lua 脚本增强版,以及使用 Redisson 框架。 这几种方式本质上是递进的,核心都是在解决手写实现中存在的原子性、锁续期和可重入等痛点。 🔧 方式一:基于 SETNX + EXPIRE(基础版) 这是最原始 阅读全文
posted @ 2026-10-10 08:21 ~码铃薯~ 阅读(15) 评论(0) 推荐(0)
摘要: 鼠标右键“阿里邮箱”图标 点击“偏好设置” 关闭就好了 阅读全文
posted @ 2026-10-09 15:41 ~码铃薯~ 阅读(15) 评论(0) 推荐(0)
摘要: Java 中的“锁”是一个非常大的话题,可以从不同维度进行分类。下面我按面试常问的脉络帮你梳理一遍,从基础概念到进阶原理。 一、按锁的性质/行为分类 1. 乐观锁 vs 悲观锁 维度 悲观锁 乐观锁 核心思想 认为并发冲突一定会发生,先加锁再操作 认为冲突很少发生,操作时不加锁,提交时再校验 实现方 阅读全文
posted @ 2026-10-08 17:00 ~码铃薯~ 阅读(12) 评论(0) 推荐(0)
摘要: 参考视频:https://www.bilibili.com/video/BV1utexzfEoA/?spm_id_from=333.337.search-card.all.click&vd_source=273847a809b909b44923e3af1a7ef0b1 自己参加了某银行的算法笔试题目 阅读全文
posted @ 2026-09-29 17:33 ~码铃薯~ 阅读(6) 评论(0) 推荐(0)
摘要: ![image](https://img2024.cnblogs.com/blog/1527997/202609/1527997-20260929155314525-344764255.png) ![image](https://img2024.cnblogs.com/blog/1527997/202609/1527997-20260929155332025-1619952512.png) ![i 阅读全文
posted @ 2026-09-29 15:58 ~码铃薯~ 阅读(4) 评论(0) 推荐(0)
摘要: 给 1000 万数据的表建索引,不能只看“列表查询”四个字,必须看具体 SQL:WHERE 条件、ORDER BY、分页方式、返回字段、并发量。核心原则是:让列表查询尽量走联合索引,并且尽量避免回表、filesort、深分页。 下面给你一套可落地的思路。 1. 先明确后台列表查询的典型 SQL 后台 阅读全文
posted @ 2026-09-29 09:32 ~码铃薯~ 阅读(11) 评论(0) 推荐(0)
摘要: 正在学习中 阅读全文
posted @ 2026-09-26 21:13 ~码铃薯~ 阅读(5) 评论(0) 推荐(0)
摘要: Timer 的任务执行完后会不会被回收,要看任务类型。单次任务执行完会从 Timer 的 TaskQueue 中移除,只要没有外部强引用,就可以被 GC 回收。但周期任务执行完会重新放回队列,TimerThread 一直持有它,如果不调用 task.cancel() 或 timer.cancel() 阅读全文
posted @ 2026-09-23 16:49 ~码铃薯~ 阅读(8) 评论(0) 推荐(0)