自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redssion - 限流器

关键代码为一串 lua 脚本,通过 redis 的 hash 结构存储限流器信息,包括限流器类型、速率、时间间隔等。关键也是一串 lua 脚本。

2025-04-04 18:14:10 603

原创 02-ArrayList add源码

1、利用空参创建的集合,在底层创建一个默认长度为0的数组2、添加第一个元素时,底层会创建一个新的长度为10的数组3、存满时,会扩容1.5倍4、如果一次添加多个元素,1.5倍还放不下,则会创建新数组长度以实际为准。

2025-03-17 07:51:28 202

原创 01-StringBuilder 源码分析

【代码】01-StringBuilder 源码分析。

2025-03-15 09:32:51 261

原创 02-sprinboot自动配置原理

1、springboot 将基本技术栈的技术收集起来,将技术集统一封装到 spring.factories 文件中,当启动 springboot 项目时,springboot 会读取 spring.factories 文件,加载 bean 注入到 spring 容器中。实现的 ImportBeanDefinitionRegistrar 接口,该接口是 spring 提供的,用于导入 bean 定义的接口,实现该接口的类可以在 spring 启动时,动态的导入 bean 定义。接口是 spring 提供的,

2025-03-02 10:23:13 808

原创 01-Bean的加载方式

通过 BeanDefinition 的注册器注册实名 bean,实现对容器中的 bean 的最终裁定。通过 BeanDefinition 的注册器注册实名 bean,实现对容器中 bean 的裁定,例如对现有 bean 的覆盖,进而达到不修改源代码的情况下更换实现的效果。使用 proxyBeanMethods = true 可以保障调佣此方法得到的 bean 对象是从容器中获取的而不是重新创建。被注入的 bean 无需使用@Bean 声明。还有其他同名 bean 覆盖的问题,很复杂,建议避免使用。

2025-03-01 11:09:39 721

原创 01-mysql慢查询相关操作

可以理解为一个节点可以存储 16kb 数据,在平衡二叉树里面节点的每次 IO 存储内容太少(一个 key,一个数据区,两个指针),浪费。不同的存储引擎适用于不同的应用场景,InnoDB(B+Tree)适合需要事务支持和高并发操作的应用,MyISAM(B-Tree)适合读多写少的场景,Memory(哈希索引)适合临时数据的快速存取。主要不足是数据分布太散,IO 次数不稳定,查询效率也不稳定,不利于范围查询,同时节点存储还是有限,IO 次数还是比较多。(冷热数据分离,减少 IO 过度争抢,两表互不影响)

2025-02-23 11:42:26 778

原创 05-Redis持久化

当 RDB 和 AOF 同时开启时,在 Redis 重启时,它会首先检查 AOF 文件是否存在,如果存在,则会使用 AOF 文件来重建数据集,因为 AOF 文件包含了最新的写操作。(2)文件写入:Redis 将 aof_buf 中的数据写入到 AOF 文件中,这一步实际上是写入到内核的 Page Cache(Liunx 操作系统管理的内存空间)中,而不是直接写入磁盘。在 RDB 持久化期间,如果主进程写操作很频繁,将增加 Redis 占用的内存,最坏情况下,内存的占用将达到原先的 2 倍。

2025-02-22 09:10:15 919

原创 01-项目核心要点分享-登录拦截

JWT(JSON Web Token)的结构由三部分组成:标头(Header)、有效载荷(Payload)和签名(Signature)。一般登录拦截这一块,公司的登录校验一般都有专业团队设计编码,自己研发一个系统只需要接入他们的登录校验模块,我们需要做的是在登录校验后需要为自己系统设计令牌和全局拦截方式。此处,使用了 jwt 来制作令牌,使用 redis 来缓存用户信息(使用 lua 脚本保证原子性),同时在拦截校验时使用加工后的新 token 来进行校验。再Hash结构存储uid,token,用户信息。

2025-02-17 07:25:53 745

原创 04-Redis应用-分布式锁Redisson

分布式锁就是满足分布式系统或者集群模式下多线程课件并且互斥的锁。特性如下:多线程可见互斥高可用高性能安全性一般分布式锁的核心实现就是多线程之间互斥,mysql、zookeeper、redis 都可以实现分布式锁。mysql 利用本身互斥锁机制(通过创建一张锁表,在需要加锁时向表中插入一条记录,释放锁时删除记录。),高可用(实现简单,稳定可靠。),但性能一般(无法适应高并发场景;容易出现死锁;无法优雅地实现阻塞式锁。),安全方面断开连接,就会自动释放锁。

2025-02-13 07:42:08 1141

原创 03-Redis在缓存方面的使用

缺点:消耗内存,可能会发生不一致的问题(使用先更新 DB 后删除缓存的更新策略中,可能出现:在线程 1 更新 DB 前线程 2 查询为空,此时线程 1 更新完毕并删除缓存,最后线程 2 缓存空数据,导致数据不一致)。缓存穿透、击穿和雪崩三种问题,虽然表现不同,但本质都是由于缓存失效或缺失,导致大量请求直接打到数据库,从而给数据库带来巨大压力。一、缓存击穿:也叫热点 Key 问题,就是一个被高并发访问并且缓存重建业务较复杂的 key 突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。

2025-02-07 23:35:45 1081

原创 02-Redis登录方面使用

统一设置拦截器,判断用户信息是否存在,并保存信息到 ThreadLocal 中,最后在线程请求结束后调用 UserHolder.removeUser()来删除 ThreadLocal 中的用户信息,以避免内存泄漏。Hash 数据结构:如果用户信息较为复杂,类似于 Map 结构,并且需要频繁更新部分字段,建议使用 Hash 数据结构。ThreadLocal 在当前线程所有请求结束后需要去删除用户信息,否则会导致内存泄露(对象未释放,内存积压,导致内存溢出)。3、拦截器- 校验用户并刷新 token 有效期。

2025-01-24 14:48:02 1307

原创 01-Redis基础知识

lettuce:lettuce 是基于 Netty 实现的,支持同步、异步和响应式编程方式,并且是线程安全的(这是因为它内部使用了连接池,并且为每个操作创建了新的状态,从而避免了状态共享的问题。Redisson:Redisson 是基于 Redis 实现的分布式、可伸缩的 Java 数据结构集合,包含了诸如 Map、Queue、Lock、Semaphore、AtomicLong 等强大功能。1、基于内存:内存的读写速度通常在几十到几百纳秒之间,而磁盘的读写速度则在几毫秒到几十毫秒。

2025-01-23 17:24:50 723

原创 kafka学习01-基本安装和使用

kafka学习01

2024-12-16 18:38:12 1045

原创 docker安装 canal 的记录-window:模拟同步mysql - elasticsearch数据

mixed【混合日志记录】:默认是【statement】模式,特殊情况时会使用 row 模式(包含 UUID、自增[auto_increment]等)缺点:有可能造成数据不一致 例如:语句中存在 UUID() now() 随机数等函数,使用 binlog 恢复数据时,会产生不一样的数据。statement【语句级】:binlog 会记录每一次执行写操作的语句。row【行级】:binlog 会记录每次操作后每行的变化。优点:节省空间,同时兼顾了一定的一致性。优点:节省空间 只会记录一条语句。

2024-11-04 19:27:18 1994

原创 docker安装 elasticsearch8.x,Kibana 的记录-window

【代码】docker安装 elasticsearch8.x,Kibana 的记录-window。

2024-10-23 15:15:07 359

原创 docker安装 RocketMQ 的记录-window

【代码】docker安装 RocketMQ 的记录-window。

2024-10-22 15:18:51 914

原创 docker安装 nacos-standalone (单机版)的记录-window

nacos 单机版安装 + mysql持久化数据 + 开启认证

2024-10-21 16:42:35 764

原创 docker安装 redis 的记录-window

【代码】docker安装 redis 的记录-window。

2024-10-21 10:14:00 217

原创 docker安装mysql的记录-window

【代码】docker安装mysql的记录-window。

2024-10-19 09:58:51 191

空空如也

空空如也

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

TA关注的人

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