摘要:
@目录通用设计概述§2 优势§3 最佳实践 通用设计概述 通用设计思路如下图 内容分发网络(CDN) 可以理解为一些服务器的副本,这些副本服务器可以广泛的部署在服务器提供服务的区域内,并存有服务器中的一些数据。 用户访问原始服务器时,其中的静态资源(比如banner图片、图标、js脚本、css文件、 阅读全文
posted @ 2025-05-20 15:15
问仙长何方蓬莱
阅读(26)
评论(0)
推荐(0)
摘要:
@目录§1 可选的数据同步策略§2 可选的数据同步策略的选用 §1 可选的数据同步策略 过期重读(设置有效期) 常用于缓存,设置缓存数据的有效期,到期后按其淘汰策略删除,再次使用时重写加载 优点: 快速简单暴力 缺点: 数据更新的时效性差,更新前后数据可能不一致 设置不当可能导致击穿(热点失效)、穿 阅读全文
posted @ 2025-05-20 15:14
问仙长何方蓬莱
阅读(38)
评论(0)
推荐(0)
摘要:
@目录Spring 启动相关的钩子 Spring 启动相关的钩子 before - main @PostConstruct ApplicationListener<ApplicationStartedEvent> ApplicationRunner.run() commandLineRunner.r 阅读全文
posted @ 2025-05-20 15:14
问仙长何方蓬莱
阅读(9)
评论(0)
推荐(0)
摘要:
@目录关键点示例代码需要注意 关键点 问题的关键在于用线程池的行为代替线程池中任务的行为 使用 thread.setUncaughtExceptionHandler 完成上述转化 示例代码 static ExecutorService threadPool = new ThreadPoolExecu 阅读全文
posted @ 2025-05-20 15:13
问仙长何方蓬莱
阅读(12)
评论(0)
推荐(0)
摘要:
@目录接触 DDD 前的准备不要用和 MVC 对照的思想去接触 DDD领域 & 子域 & 界限上下文思路领域子域界限上下文领域的初步划分 接触 DDD 前的准备 不要用和 MVC 对照的思想去接触 DDD 不要用和 MVC 对照的思想去接触 DDD,这样你会很痛苦。 在之前 蛋式编程 这个帖子中阐述 阅读全文
posted @ 2025-05-20 15:13
问仙长何方蓬莱
阅读(14)
评论(0)
推荐(0)
摘要:
@目录以前的数据与DDD下关系 子域 & 界限上下文,并不是一方包含另一方,一个涵盖另一个的关系,他们是平行的并描述领域中的不同的侧面 子域是领域的一个部件 领域上下文只体现领域中一套通用语言的边界 领域会在分析时被拆分为一些子域,对于任意一个子域,我们可以按核心子域、支撑子域、通用子域来区分他们 阅读全文
posted @ 2025-05-20 15:13
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录LSA 级别与全年停机时间速查表LSA 级别实战TP 性能超时时间设计原则 LSA 级别与全年停机时间速查表 计算公式:60 * 60 * 24 * 365 * (1-LSA) = 31,536,000 * (1-LSA) 系统级别 LSA级别 全年停机时间 0+ 99.999% 5分钟 0 阅读全文
posted @ 2025-05-20 15:12
问仙长何方蓬莱
阅读(100)
评论(0)
推荐(0)
摘要:
@目录图 图 我们可以这样看待数据结构:数据结构的本质是数据之间的关联关系。 最原始的关联关系只有一种,即 物理相连(邻),以这种关联关系为基础的数据结构,即数组,最初的数据结构。 然后,我们可以这样认为:数据之间的关联关系是可以衍化的。 这是一件必然的事,否则不会出现刚刚提到的 8 中基础数据结构 阅读全文
posted @ 2025-05-20 15:12
问仙长何方蓬莱
阅读(17)
评论(0)
推荐(0)
摘要:
@目录总览图上图的说明 总览图 上图的说明 日志体系的结构大约可以概括为 日志门面 日志绑定层 日志实现 日志桥接层 slf4j 是 日志门面,所谓日志门面可以理解为日志总接口 slf4j-log4j、log4j-slf4j-impl 是 日志绑定层,日志绑定层的作用是将 日志门面 绑定到 日志实现 阅读全文
posted @ 2025-05-20 15:11
问仙长何方蓬莱
阅读(20)
评论(0)
推荐(0)
摘要:
@目录§1 常见的分布式事务解决方案 §1 常见的分布式事务解决方案 主要是以下四种 2pc/3pc TCC 可靠消息最终一致性 最大努力通知 阅读全文
posted @ 2025-05-20 15:11
问仙长何方蓬莱
阅读(12)
评论(0)
推荐(0)
摘要:
@目录 title 限时独活worker participant 定时任务 participant node-1 participant node-2 participant worker-1 participant worker-2 participant 存活标记 participant 存活锁 阅读全文
posted @ 2025-05-20 15:09
问仙长何方蓬莱
阅读(9)
评论(0)
推荐(0)
摘要:
@目录§1 前言§22 我们希望避免 ESP§2.1 ESP 的成因§2.2 避免 ESP 的思路 §1 前言 参考资料 本文承接以前的帖子梳理,相关内容如下 [蛋式编程(Egg-Style Programming)与业务内设计与组件式编程(Component-Style Programming)( 阅读全文
posted @ 2025-05-20 15:09
问仙长何方蓬莱
阅读(17)
评论(0)
推荐(0)
摘要:
@目录§1 kafka-clients 使用 §1 kafka-clients 使用 依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>3.0.0</ 阅读全文
posted @ 2025-05-20 15:08
问仙长何方蓬莱
阅读(15)
评论(0)
推荐(0)
摘要:
@目录kafka-topics.shkafka-console-producer.shkafka-console-consumer.sh kafka-topics.sh 常见参数 --bootstrap-server ip:port,ip:port,ip:port 连接 kafka,连接上任意一个 阅读全文
posted @ 2025-05-20 15:07
问仙长何方蓬莱
阅读(20)
评论(0)
推荐(0)
摘要:
@目录§1 官网地址 & 下载§2 解压 & 安装§3 配置§4 启动/停止 §1 官网地址 & 下载 kafka kafka 的服务端代码是 Scala 语言编写,上图红框处版本号是语言版本 §2 解压 & 安装 cd /opt/kafka tar -zxvf kafka_xx-xx.tgz 安装 阅读全文
posted @ 2025-05-20 15:07
问仙长何方蓬莱
阅读(35)
评论(0)
推荐(0)
摘要:
@目录§1 作用§2 术语§3 生产者 §1 作用 定义 消息队列 分布式事件流平台 应用目的 削峰(缓冲) 略 解耦 基于消息的通信是平台无关、语言无关的,只取决于通信双方是否可以正确解析消息内容 异步 同步接口转异步的常规套路 应用场景 分布式事务 通过将分布式事务拆分为流程 不同流程节点对应不 阅读全文
posted @ 2025-05-20 15:06
问仙长何方蓬莱
阅读(24)
评论(0)
推荐(0)
摘要:
@目录小和问题逆数对问题几乎有序数组排序问题反转链表回文链表按基准值整理链表有随机指针的单向链表复制链表成环两条链表相交二叉树的递归遍历二叉树的栈遍历二叉树宽度优先遍历二叉树的序列化二叉树的反序列化二叉树的最大宽度二叉树题目(二叉树动态规划)通用思路最近共同祖先节点后继节点判断搜索二叉树判断完全二叉 阅读全文
posted @ 2025-05-20 15:06
问仙长何方蓬莱
阅读(15)
评论(0)
推荐(0)
摘要:
@目录§1 SQL 执行顺序§2 表关联§3 执行计划§4 SQL 优化 §1 SQL 执行顺序 SQL 通用完整模板 SELECT [DISTINCT] <columns> FROM <table> [ [<INNER>][<LEFT>][<RIGHT>] JOIN <table> ON <joi 阅读全文
posted @ 2025-05-20 15:06
问仙长何方蓬莱
阅读(63)
评论(0)
推荐(0)
摘要:
@目录§1 定义§2 数据结构§3 分类§4 指令§5 索引失效 §1 定义 索引是高效获取数据的数据结构,是一个 有序、可以快速查询的 B+ 树 作用 提高查询效率 将 随机 IO 转化为 顺序 IO 避免在分组、排序时使用临时表 缺点 降低写操作(包括增删改)的效率,因为要维护索引 索引也相当于 阅读全文
posted @ 2025-05-20 15:05
问仙长何方蓬莱
阅读(8)
评论(0)
推荐(0)
摘要:
@目录§1 函数§2 存储过程 §1 函数 信任自定义函数 show variables like '%log_bin_trust_function_creators%'; 此变量为 OFF 时,创建修改函数会报错 ERROR 1418 (HY000): This function has none 阅读全文
posted @ 2025-05-20 15:04
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录§1 逻辑架构§2 存储引擎 §1 逻辑架构 Mysql 使用插件式存储引擎,用以分离 查询处理 存储提取 其他系统任务 Mysql 按逻辑可以分为如下组件,如下图 客户端 用于客户端和服务端的连接,含 Socket 通信等 主要负责处理连接、授权、安全方案等 服务端 服务层 用于完成大部分核 阅读全文
posted @ 2025-05-20 15:04
问仙长何方蓬莱
阅读(23)
评论(0)
推荐(0)
摘要:
@目录§1 特性§2 隔离级别 §1 特性 原子性:Atomicity 一致性:Consistency 隔离性:Isolation 持久性:Durability §2 隔离级别 并发事务问题 脏读 读到其他事务中 已修改但未提交 的数据 不可重复读 一个事务中多次查询 一条数据 但返回不同的结果 这 阅读全文
posted @ 2025-05-20 15:04
问仙长何方蓬莱
阅读(9)
评论(0)
推荐(0)
摘要:
@目录§1 TCP 粘包拆包 §1 TCP 粘包拆包 TCP 是面向连接,面向流的 连接的两端为了更有效率的传输数据,可能对数据传输进行优化 使用优化算法,如 Nagle 将间隔小、数据量小的包进行合并,合并成一个数据块后进行封包 但因为面向流的同学是无消息保护边界的,因此带来如何重写分割多个数据包 阅读全文
posted @ 2025-05-20 15:03
问仙长何方蓬莱
阅读(8)
评论(0)
推荐(0)
摘要:
@目录§1 出站 & 入站§2 Pipeline & ChannelPipeline §1 出站 & 入站 Netty 是通过由多个 Handler 组成的链处理所有通信的 多个 Handler 组成的链即 Pipeline Handler 本身是具有方向的,通常认为以 读 为处理重点的是 入站,以 阅读全文
posted @ 2025-05-20 15:03
问仙长何方蓬莱
阅读(55)
评论(0)
推荐(0)
摘要:
@目录 基本介绍 Netty 通过编码器将消息转换成通信数据进行传输 Netty 通过编码器将接收到的通讯数据转换成消息以使用 编解码器可能在一次 出站、入站中被多次调用,直到出入站数据不再满足编解码条件 Decoder 继承 ChannelInboundHandlerAdapter 需要实现 de 阅读全文
posted @ 2025-05-20 15:02
问仙长何方蓬莱
阅读(12)
评论(0)
推荐(0)
摘要:
@目录§1 基本介绍§2 .proto 文件§3 使用 §1 基本介绍 基本信息 Google Protocol Buffers 序列化技术 通过 Message 的形式管理数据 可以自动生成 java 代码 支持用 .proto 文件描述 java 类,并通过 protoc.exe 编译器自动生成 阅读全文
posted @ 2025-05-20 15:01
问仙长何方蓬莱
阅读(27)
评论(0)
推荐(0)
摘要:
@目录§1 心跳检测器§2 事件处理§3 日志§4 编解码器§5 WebSocket §1 心跳检测器 IdleStateHandler 自动对空闲时长进行判断 触发空闲超长后,抛出 IdleStateEvent 事件 IdleStateEvent 事件自动 交由此 handler 后的下一个 ha 阅读全文
posted @ 2025-05-20 15:00
问仙长何方蓬莱
阅读(21)
评论(0)
推荐(0)
摘要:
@目录§1 需求§2 GeneralNettyChannelInitializer & NamableEntry§3 示例 §1 需求 可以支持多人群聊 有客户端加入群聊时,会有广播通知 有客户端离开群聊时,会有广播通知 有客户端发言后,会有广播通知 §2 GeneralNettyChannelIn 阅读全文
posted @ 2025-05-20 14:59
问仙长何方蓬莱
阅读(21)
评论(0)
推荐(0)
摘要:
@目录Bootstrap & ServerBootstrapChannelFuture & ChannelFutureSelectorChannelHandlerPipeline & ChannelPipelineChannelHandlerContextChannelOptionChannelGr 阅读全文
posted @ 2025-05-20 14:59
问仙长何方蓬莱
阅读(25)
评论(0)
推荐(0)
摘要:
@目录§1 FutureListener 机制§2 常用方法§3 示例 §1 FutureListener 机制 Netty 的接口调用是 异步 的 关于 Netty 的异步,笔者认为其实是有异议的,详情参考 并发编程 | Netty - [taskQueue & scheduledTaskQueu 阅读全文
posted @ 2025-05-20 14:59
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录§1 概述§2 活跃版本 §1 概述 特点 异步、事件驱动的基于 NIO 的 网络通信框架 用于开发高性能、高可靠的网络 IO 应用 适用于 TCP 协议,面向客户端或 P2P 场景的大量数据传输 传统 NIO 问题 API 十分不友好 NIO 编程并不纯粹,需要线程、Reactor 等知识储 阅读全文
posted @ 2025-05-20 14:58
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录§1 作用§2 使用场景 §1 作用 Netty 是一个以 性能至上 为第一原则的框架 但 Netty 实际上还是一个基于 NIO 的框架,它依然只是 非阻塞 而不是 异步 这里说的 异步 与否,是指系统底层 IO 模型是否阻塞,而不是接口调用方式 常说的 Netty 是异步非阻塞其实都是其接 阅读全文
posted @ 2025-05-20 14:57
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录§1 模型中涉及的对象§2 从经典 Reactor 到 Netty Reactor §1 模型中涉及的对象 下面信息只用来辅助理解下面的模型,具体信息参考 并发编程 | Netty - [常用组件概要] NioEventLoop 每个 NioEventLoop 包含一个 Selector 相当 阅读全文
posted @ 2025-05-20 14:57
问仙长何方蓬莱
阅读(19)
评论(0)
推荐(0)
摘要:
@目录§1 简介§2 常见线程模型§3 Netty 的 Reactor 模型 §1 简介 核心特征 Reactor 即反应堆模式,别称 分发者模式、通知者模式。 通常是对多路复用思想的实现 多个连接或请求可以同时阻塞在一个 Reactor 上 Reactor 可以对阻塞在其上的多个连接或请求进行监听 阅读全文
posted @ 2025-05-20 14:56
问仙长何方蓬莱
阅读(19)
评论(0)
推荐(0)
摘要:
@目录§1 0 复制§1 0 复制演进§1 示例 §1 0 复制 通常在进行 IO 操作时,涉及到 2 种复制 DMA 复制 不需要 CPU 参与,效率极高,但不可避免 CPU 复制 就是 0 复制中需要消灭的复制,0 复制其实是指 0 CPU 复制 §1 0 复制演进 BIO 用户态/内核态切换: 阅读全文
posted @ 2025-05-20 14:56
问仙长何方蓬莱
阅读(10)
评论(0)
推荐(0)
摘要:
@目录§1 前言与总纲§2 设计原则§2.1 设计原则开闭原则 (Open-Closed Principle)§2.2 单一职责 (Single Responsibility)§2.3 接口隔离 (Interface Segregation)§2.4 依赖反转 (Dependence Inversi 阅读全文
posted @ 2025-05-20 14:55
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录§1 线程状态§2 用户态、内核态§2 线程停止 & 中断§3 线程通信 §1 线程状态 含义 是否存活 是否可以占有 CPU是否可以自动解除阻塞 已占有CPU 涉及到的池 说明 New 新建 √ × × - 刚刚创建,尚未 start() Runnable 就绪 √ √ × 可运行线程池 已 阅读全文
posted @ 2025-05-20 14:55
问仙长何方蓬莱
阅读(26)
评论(0)
推荐(0)
摘要:
@目录§ 1 按时间顺序§ 2 同步 & 异步、阻塞 & 非阻塞§3 各个 IO 模型 § 1 按时间顺序 BIO 即 同步阻塞 IO 读写请求会阻塞至有数据可供读写 等待内核数据就绪并将数据传输到阻塞区 会为每个请求开辟一个线程 因此遇到高并发时,线程数量会爆炸 PIO 即 同步伪非阻塞 IO 通 阅读全文
posted @ 2025-05-20 14:54
问仙长何方蓬莱
阅读(21)
评论(0)
推荐(0)
摘要:
@目录§1 场景需求与难点§2 使用的文件§3 实现§4 效果 & 坑总结 §1 场景需求与难点 由来 填自己技术漏洞时扫到 AsynchronousFileChannel 涉及到一个 AsynchronousFileChannel + CompletionHandler 读文件的 case 但网上 阅读全文
posted @ 2025-05-20 14:54
问仙长何方蓬莱
阅读(30)
评论(0)
推荐(0)
摘要:
@目录§1 Path§2 Files§3 Charset §1 Path 概述 表示文件在文件系统中的路径 可以指向文件或目录 可以是绝对路径,也可以是相对路径 通常 Path 可以替代 File 方法 获取 get() Paths.get(absolute); Paths.get(base,rel 阅读全文
posted @ 2025-05-20 14:53
问仙长何方蓬莱
阅读(12)
评论(0)
推荐(0)
摘要:
@目录§1 FileLock§2 ACL §1 FileLock 概述 文件锁是进程级别的锁 可以解决多个进程并发访问 不能解决多线程并发访问修改同一个文件 被进程锁锁住的文件 进程内的所有线程都可以访问修改 其他进程是否可以对文件进行操作由文件锁 性质 决定 当前进程不能重复获取同一个文件的文件锁 阅读全文
posted @ 2025-05-20 14:53
问仙长何方蓬莱
阅读(23)
评论(0)
推荐(0)
摘要:
@目录§1 概述§2 方法§3 示例 §1 概述 Pipe,即管道,是两个线程之间的单向数据连接 Pipe 中会包含两个通道 - 一条线程向 sink中写入数据 - 另一条线程通过 source 通道读取数据 §2 方法 创建 open() 写入 SinkChannel.write() 读取 Sou 阅读全文
posted @ 2025-05-20 14:53
问仙长何方蓬莱
阅读(15)
评论(0)
推荐(0)
摘要:
@目录§1 概述§2 方法§3 使用 §1 概述 多路复用 Selector 是 NIO 中的选择器,也称多路复用器 用于监听 Channel 的 状态 可以实现用单线程管理多个 Channel 不是所有 Channel 都可以被多路复用,需要继承 SelectableChannel 所有的 Soc 阅读全文
posted @ 2025-05-20 14:52
问仙长何方蓬莱
阅读(22)
评论(0)
推荐(0)
摘要:
@目录§1 概述§2 重要成员§2.1 property§2.2 method§3 示例 §1 概述 缓冲区是一块内存空间,可以将它直观的理解为一个数组 这块内存空间直接和 Channel 相连接 可以向这块内存空间中写或读取数据 常用实现 ByteBuffer CharBuffer DoubleB 阅读全文
posted @ 2025-05-20 14:51
问仙长何方蓬莱
阅读(20)
评论(0)
推荐(0)
摘要:
@目录§1 概述§2 FileChannel§2.1 FileChannel§2.2 AsynchronousFileChannel§3 SocketChannel§3.1 ServerSocketChannel§3.2 SocketChannel§3.3 DatagramChannel §1 概述 阅读全文
posted @ 2025-05-20 14:51
问仙长何方蓬莱
阅读(17)
评论(0)
推荐(0)
摘要:
@目录§1 从经典面试题开始§2 多路复用整体模型§3 概念§4 系统函数 select、poll、epoll§5 以 Redis 为例描述完成流程 §1 从经典面试题开始 经典面试题:“Redis 是单线程还是多线程?” 答: redis 的指令线程依然是单线程 与客户端交互的网络 IO 支持多线 阅读全文
posted @ 2025-05-20 14:50
问仙长何方蓬莱
阅读(27)
评论(0)
推荐(0)
摘要:
@目录§1 常见坑总览§2 缓存穿透§3 缓存击穿§4 缓存雪崩 §1 常见坑总览 穿透 强调 缓存层不完全生效,即上了缓存和没上一样 因此 缓存命中率降低 是重点 击穿 强调 众多并发的请求在 key 空间上的分布不均匀,通常是热点数据的失效 因此 数据库压力骤增,但缓存运行正常 是重点 雪崩 强 阅读全文
posted @ 2025-05-20 14:50
问仙长何方蓬莱
阅读(21)
评论(0)
推荐(0)
摘要:
@目录§1 集群解决的痛点§2 集群方案§3 无中心化集群搭建§4 可视化工具§5 集群指令§5.1 cluster info [查看集群状态]§5.2 cluster nodes [查看集群节点状态]§5.3 redis-cli --cluster create[组建集群]§5.4 redis-c 阅读全文
posted @ 2025-05-20 14:49
问仙长何方蓬莱
阅读(38)
评论(0)
推荐(0)
摘要:
@目录§1 主从复制§1.1 流程§1.2 示例§2 哨兵模式 §1 主从复制 §1.1 流程 主从复制流程 全量复制 从节点连接主节点后,向主节点发送数据同步消息 主节点收到同步消息后,对主节点进行持久化 将生成的 rdb 文件发送给从节点 从节点通过此文件进行恢复 增量复制 主节点进行写操作后, 阅读全文
posted @ 2025-05-20 14:49
问仙长何方蓬莱
阅读(18)
评论(0)
推荐(0)
摘要:
@目录§1 持久化方式§2 RDB§2 AOF §1 持久化方式 RDB:内存快照 AOF:增量写操作指令日志 对比 RDB AOF 默认开启 √ × 数据规模 大 - 完整性一致性 低 高 保存效率 高于 AOF,大数据量时有性能损耗 AOF 的复写基于 RDB 恢复速度 快 慢 自动恢复 √ √ 阅读全文
posted @ 2025-05-20 14:48
问仙长何方蓬莱
阅读(19)
评论(0)
推荐(0)
摘要:
@目录§1 秒杀常见问题§2 实现§3 另一种思路 §1 秒杀常见问题 超卖 因并发导致且没有加锁导致的 通过 WATCH 解决 超时 redis 连接数不够,导致大并发下大量请求不能获取连接 通过连接池解决 遗留 乐观锁互相影响导致大量失败导致 乐观锁改悲观锁,使用 lua 实现 §2 实现 @S 阅读全文
posted @ 2025-05-20 14:48
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录§1 集成 cluster 工具§2 Jedis§3 JedisPool§4 Redisson§5 spring-boot-starter-data-redis §1 集成 cluster 工具 老版本 redis 想搭建集群需要安装 ruby 环境,5 以后版本将 reis-trib.rb 阅读全文
posted @ 2025-05-20 14:47
问仙长何方蓬莱
阅读(15)
评论(0)
推荐(0)
摘要:
@目录§1 什么是发布订阅§2 发布订阅的实现 §1 什么是发布订阅 发布订阅(pub/sub)是一种消息通信模式 发布者(pub)发布消息,订阅者(sub)接受消息 redis 客户端可以订阅任意数量的频道(channel) §2 发布订阅的实现 订阅 SUBSCRIBE channel_name 阅读全文
posted @ 2025-05-20 14:47
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录§1 安装§2 目录§3 配置§4 启动/停止§5 实例基本信息§6 数据类型与常见应用场景 §1 安装 安装 gcc yum install gcc 下载 解压 tar -zxvf reids 进入解压目录,编译 make 若出现下面提示,需要执行 make distclean 致命错误:J 阅读全文
posted @ 2025-05-20 14:46
问仙长何方蓬莱
阅读(76)
评论(0)
推荐(0)
摘要:
@目录§1 redis 内存§2 过期策略 和 驱逐策略 §1 redis 内存 查看内存使用情况 也可以通过命令配置 可以通过 info memory 的 used_memory_human 和 maxmemory_human 查看阅读友好的已用内存和总内存 设置最大可用内存 redis.conf 阅读全文
posted @ 2025-05-20 14:46
问仙长何方蓬莱
阅读(35)
评论(0)
推荐(0)
摘要:
@目录§1 分布式锁§2 redis 事务 §1 分布式锁 redis 是线程安全的 redis 是单线程的 因为作为内存数据库,CPU 很难成为它的性能瓶颈 这里说的单线程是它执行指令的线程,IO 部分是支持多线程的 redis-server 是线程安全的 因为 redis 是单线程执行指令的,所 阅读全文
posted @ 2025-05-20 14:45
问仙长何方蓬莱
阅读(61)
评论(0)
推荐(0)
摘要:
@目录§1 对象的生命周期§2 对象创建过程§3 访问方式§4 对象的构成§4.1 Mark Word§4.2 Class Pointer§4.3 Instance Data§4.4 Padding§5 锁升级§4 JOL §1 对象的生命周期 完整的对象生命周期分为 7 个阶段 创建 应用 不可见 阅读全文
posted @ 2025-05-20 14:45
问仙长何方蓬莱
阅读(43)
评论(0)
推荐(0)
摘要:
一致性 hash 一致性 hash 即 identity hashcode, 是指通过 System.identityHashCode() 或默认的 java.lang.Object.hashCode() 获取的 hashcode 这种 hash 一经生成,始终不变 存储在对象头的 markword 阅读全文
posted @ 2025-05-20 14:45
问仙长何方蓬莱
阅读(23)
评论(0)
推荐(0)
摘要:
@目录概览 概览 接口 参数 返回值 作用 Runable run × × Function apply() 1 √ Consumer acdept() 1 × BiConsumer acdept() 2 × Supplier get() × √ Predicate test() 1 boolean 阅读全文
posted @ 2025-05-20 14:44
问仙长何方蓬莱
阅读(10)
评论(0)
推荐(0)
摘要:
@目录§1 作用§2 API§3 Thread、ThreadLocal、ThreadLocalMap§3 内存泄漏§4 最佳实践 §1 作用 是成员变量的线程本地化形态 使静态变量的值与线程绑定,即隔离了其他线程对当前线程中变量的操作 在理解时,不宜将 ThreadLocal 理解为横跨若干线程、存 阅读全文
posted @ 2025-05-20 14:44
问仙长何方蓬莱
阅读(24)
评论(0)
推荐(0)
摘要:
@目录§1 重要属性§2 Striped64 原理粗讲§2 LongAdder 源码§2 Striped64 源码 §1 重要属性 /** Number of CPUS, to place bound on table size */ // 运行环境的实际 CPU 核数 static final i 阅读全文
posted @ 2025-05-20 14:43
问仙长何方蓬莱
阅读(15)
评论(0)
推荐(0)
摘要:
@目录§1 总览§2 基本类型原子类§3 数组类型原子类§4 引用类型原子类§4 属性修改原子类§5 原子操作增强§6 原子操作底层类 §1 总览 原子类大多在包 java.util.concurrent.atomic 下 原子型 基础型 类型 说明 AtomicBoolean boolean 基本 阅读全文
posted @ 2025-05-20 14:43
问仙长何方蓬莱
阅读(17)
评论(0)
推荐(0)
摘要:
在这里插入代码片@目录链表Hash有序表二叉树搜索二叉树完全二叉树平衡二叉树堆堆操作heap insert (以大顶堆为例)heapify (以大顶堆为例)heap 修改数组整理成堆 (以大顶堆为例)堆扩容优先级队列(PriorityQueue)桶词频表词序表图 链表 链表分 单向链表 和 双向链表 阅读全文
posted @ 2025-05-20 14:42
问仙长何方蓬莱
阅读(17)
评论(0)
推荐(0)
摘要:
@目录固定规则 & 概念位与( & )位异或( ^ )固定公式master 公式固定写法获取最右位 1两数平均值常用工具 & 技巧 固定规则 & 概念 位与( & ) a & a = a 0 & a = 0 位异或( ^ ) a ^ a = 0 因此严禁同内存地址 ^ 自己 0 ^ a = a a 阅读全文
posted @ 2025-05-20 14:42
问仙长何方蓬莱
阅读(19)
评论(0)
推荐(0)
摘要:
@目录§1 各排序算法的对比§2 算法遍历二分 §1 各排序算法的对比 稳定性 时间复杂度 空间复杂度 选择 ×(交换时可能跨元素交换) \(O(n^2 )\) \(O(1)\) 冒泡 √(相等时不交换) \(O(n^2 )\) \(O(1)\) 插入 √(相等时不交换) \(O(n^2 )\) \ 阅读全文
posted @ 2025-05-20 14:41
问仙长何方蓬莱
阅读(12)
评论(0)
推荐(0)
摘要:
@目录§1 各排序算法的对比§2 基于比较的排序§2.1 选择排序§2.2 冒泡排序§2.3 插入排序§2.4 归并排序§2.5 快速排序§2.6 堆排序§3 基于数据状况的排序(统计排序)§3.1 计数排序§3.2 基数排序 §1 各排序算法的对比 稳定性 时间复杂度 空间复杂度 选择 ×(交换时 阅读全文
posted @ 2025-05-20 14:41
问仙长何方蓬莱
阅读(22)
评论(0)
推荐(0)
摘要:
@目录§1 数据类型与常见应用场景§2 命令速查§3 key 相关指令§4 数据库 相关指令§5 string§5.1 string 基本信息§5.2 string 指令§6 hash§6.1 hash 基本信息§6.2 hash 指令§7 list§7.1 list 基本信息§7.2 list 指 阅读全文
posted @ 2025-05-20 14:40
问仙长何方蓬莱
阅读(20)
评论(0)
推荐(0)
摘要:
@目录JVM 调优工具压测中间件 JVM 调优工具 ARTHAS 压测 Apache JMeter 中间件 kafka tool Another Redis DeskTop Manager 阅读全文
posted @ 2025-05-20 14:40
问仙长何方蓬莱
阅读(15)
评论(0)
推荐(0)
摘要:
@目录§1 相关类与容器§2 过程§3 总结 §1 相关类与容器 SpringApplication 是 springboot 应用的启动类的引导类 run() 是 SpringApplication 中,我们主要使用的方法 PostProcessor 是 springboot 在初始化过程中的重要 阅读全文
posted @ 2025-05-20 14:39
问仙长何方蓬莱
阅读(56)
评论(0)
推荐(0)
摘要:
@目录§1 AbstractQueuedSynchronizer§2 AbstractQueuedSynchronizer 的体系§3 AbstractQueuedSynchronizer 的结构§3.1 字段§3.2 CLH lock queue 等待队列§3.3 AbstractQueuedSy 阅读全文
posted @ 2025-05-20 14:38
问仙长何方蓬莱
阅读(20)
评论(0)
推荐(0)
摘要:
@目录§1 是什么§2 为什么出现§3 使用§4 理解 par() 和 unpark() 的 许可证(permit) §1 是什么 属于 JUC 是个类 用于创建锁和其他同步类的基本线程阻塞原语 是 JDK 对线程阻塞的实现,AQS 与其他锁都是基于它实现的 §2 为什么出现 主要是因为 synch 阅读全文
posted @ 2025-05-20 14:37
问仙长何方蓬莱
阅读(37)
评论(0)
推荐(0)
摘要:
查询 从名字、描述、readme 中查询 in:name in:description in:readme 组合:spring in:name,readme 基于 star 筛选 spring stars:>=1000 spring stars:1000..2000 基于 fork 筛选 sprin 阅读全文
posted @ 2025-05-20 14:37
问仙长何方蓬莱
阅读(50)
评论(0)
推荐(0)
摘要:
@目录相关指令快速索引指令JVM 性能工具排查思路示例 相关指令快速索引 希望查看的信息 指令 示例 系统进程列表 ps -ef | grep 进程名 ps -ef | grep java 系统资源占用较高的进程与它们占用资源的概览 top 常用 进程运行、内存、cpu情况的实时统计 vmstat 阅读全文
posted @ 2025-05-20 14:36
问仙长何方蓬莱
阅读(33)
评论(0)
推荐(0)
摘要:
@目录§1 StackOverFlowError§2 OutOfMemoryError§2.1 java heap space§2.2 GC overhead limit exceeded§2.3 Direct buffer memory§2.5 Metaspace§2.5 unable to cr 阅读全文
posted @ 2025-05-20 14:35
问仙长何方蓬莱
阅读(25)
评论(0)
推荐(0)
摘要:
@目录§1 JVM 内存模型简介§1.1 程序计数器(Program Counter Register)§1.2 虚拟机栈(Java Stack)§1.3 本地方法栈(Native Method Stack)§1.4 堆(Heap)§1.5 元空间§2 JVM 的直接内存§3 JMM 内存模型 §1 阅读全文
posted @ 2025-05-20 14:35
问仙长何方蓬莱
阅读(51)
评论(0)
推荐(0)
摘要:
@目录§1 Reference§2 各引用级别 §1 Reference 在 JDK 中,引用和对象一样,已经被抽象成了类,如下图 §2 各引用级别 强引用 FinalReference 强引用是最常见的引用,但 FinalReference 是非 public 的,因此不能如其他引用一样显示声明 阅读全文
posted @ 2025-05-20 14:34
问仙长何方蓬莱
阅读(46)
评论(0)
推荐(0)
摘要:
@目录§1 JVM 参数分类§2 参数查看§3 标准参数§4 -X 参数§5 -XX 参数§6 典型配置案例 §1 JVM 参数分类 标准参数(-) 所有的 JVM 实现都必须实现这些参数的功能 向后兼容 -version -help 详细信息参阅 (此信息为下面指令提供) 非标准参数(-X): 默 阅读全文
posted @ 2025-05-20 14:34
问仙长何方蓬莱
阅读(19)
评论(0)
推荐(0)
摘要:
@目录§1 垃圾回收算法§1.1 引用计数器§1.2 复制§1.3 标记清除§1.4 标记整理§2 GC Root§3 垃圾收集器§3.1 查看默认垃圾收集器§3.2 默认垃圾收集器及其分类§3.3 默认垃圾收集器横比§3.4 垃圾收集器参数配置与组合§3.5 垃圾收集器的选择§4 GC 类型§5 阅读全文
posted @ 2025-05-20 14:33
问仙长何方蓬莱
阅读(29)
评论(0)
推荐(0)
摘要:
§1 类加载过程 装载 JVM 加载 class 文件到内存,并验证数据、解析、转化、初始化为 JVM 可以使用的 java 类型的过程 通过类全限定名获取类的二进制字节流 将字节流的内容转化为 JVM 运行时数据结构,存储到方法区 java 堆中生成 java.lang.Class 对象,指向方法 阅读全文
posted @ 2025-05-20 14:33
问仙长何方蓬莱
阅读(9)
评论(0)
推荐(0)
摘要:
@目录 制造一个死锁 public class DeadlockDemo { public static void work(String lock1,String lock2){ synchronized (lock1){ System.out.println(Thread.currentThre 阅读全文
posted @ 2025-05-20 14:32
问仙长何方蓬莱
阅读(10)
评论(0)
推荐(0)
摘要:
@目录§1 为什么使用线程池§2 ThreadPoolExecutor(线程池本体)§2.1 主要参数§2.2 常用方法§2.3 线程池工作原理§2.4 拒绝策略§3 Executors§4 常用预设线程池§4.1 一览§4.2 各线程池简单示例§5 自定义线程池 §1 为什么使用线程池 实现了线程 阅读全文
posted @ 2025-05-20 14:32
问仙长何方蓬莱
阅读(23)
评论(0)
推荐(0)
摘要:
@目录§1 开线程方式§2 Callable & FutureTask 使用 §1 开线程方式 继承 Thread new Thread(()->{ // do },"A").start(); 实现 Runable new Thread(()->{ // do },"A").start(); 实现 阅读全文
posted @ 2025-05-20 14:30
问仙长何方蓬莱
阅读(13)
评论(0)
推荐(0)
摘要:
@目录§1 synchronized 与 Lock 对比§3 synchronized§3.1 加锁位置§3.2 synchronized 原理§3 Lock§4 ReentrantReadWriteLock§5 StampeLock §1 synchronized 与 Lock 对比 synchr 阅读全文
posted @ 2025-05-20 14:29
问仙长何方蓬莱
阅读(11)
评论(0)
推荐(0)
摘要:
@目录§1 什么是阻塞队列§2 阻塞队列有什么好处§3 阻塞队列总览§4 SynchronousQueue §1 什么是阻塞队列 阻塞队列的存取性质与普通队列一致,即先进先出 同时,阻塞队列提供具有下面特性的存取方法 若队列是空的,获取操作阻塞,直到其他线程向其中存入元素 若队列是满的,存入操作阻塞 阅读全文
posted @ 2025-05-20 14:29
问仙长何方蓬莱
阅读(19)
评论(0)
推荐(0)
摘要:
@目录CountDownLatchCyclicBarrierSemaphoreForkJoinPool / ForkJoinTask / RecursiveTaskCompletableFuture 使用 CountDownLatch 字面直译 减数门闩 作用 让一些线程阻塞,直到另一些线程都执行完 阅读全文
posted @ 2025-05-20 14:14
问仙长何方蓬莱
阅读(10)
评论(0)
推荐(0)
摘要:
@目录§1 总览§2 公平锁、非公平锁§3 可重入锁(递归锁)§4 自旋锁§5 独占锁、共享锁§6 悲观锁、乐观锁 §1 总览 锁类型 描述 优点 缺点 举例 公平锁 线程按申请锁的顺序获取锁 有序 吞吐量较低 new ReentrantLock(true) 非公平锁 线程可能不按申请锁的顺序获取锁 阅读全文
posted @ 2025-05-20 14:13
问仙长何方蓬莱
阅读(34)
评论(0)
推荐(0)
摘要:
List 不安全示例 public static void main(String[] args) { List<String> list = new ArrayList<>(); for(int i=0 ;i <10;i++){ new Thread(()->{ try { TimeUnit.MI 阅读全文
posted @ 2025-05-20 14:12
问仙长何方蓬莱
阅读(7)
评论(0)
推荐(0)
摘要:
@目录§1 CAS§2 CAS 原理§2.1 CAS 原理 - 自旋锁§2.2 CAS 原理 - Unsafe 类§2.3 CAS 缺点 §1 CAS CAS 即 Compare and Swap 用于判断内存某个位置的值是否为预期值,如果是 则更改为新的值 属于系统原语,CPU 原子指令(cmpx 阅读全文
posted @ 2025-05-20 14:11
问仙长何方蓬莱
阅读(31)
评论(0)
推荐(0)
摘要:
@目录并发编程volatile 关键字 并发编程 并发编程的特性 原子性 一个或一组操作在执行过程中不会被其他操作插入或中断 可见性 一个线程修改了线程共享变量的值,其它线程能够立即得知这个修改 有序性 程序执行的顺序按照代码的先后顺序执行 先行发生原则(Happens-Before) 先行发生原则 阅读全文
posted @ 2025-05-20 14:11
问仙长何方蓬莱
阅读(19)
评论(0)
推荐(0)
摘要:
@目录§1 Portainer§2 安装 & 使用 §1 Portainer 概括的说,Portainer是 docker 的可视化监控、统计工具 Portainer 分为两个版本 Portainer CE (Community Edition) ,社区版。 基于数以百万的用户,社区版已经是一个强大 阅读全文
posted @ 2025-05-20 14:10
问仙长何方蓬莱
阅读(69)
评论(0)
推荐(0)
摘要:
@目录§1 容器编排§2 指令§3 使用§3.1 Docker Compose 的获取§3.2 Docker Compose 使用示例 §1 容器编排 Compose 是一个用于定义以及运行多个 Docker 容器的工具。 通过 YAML 文件配置应用服务,随后通过单个命令即可从这个配置创建并开启所 阅读全文
posted @ 2025-05-20 14:10
问仙长何方蓬莱
阅读(16)
评论(0)
推荐(0)
摘要:
@目录§1 Docker 的网络§1.1 初识§1.2 用途§1.3 网络模式 / 网络驱动§1.4 指定网络模式§2 网络指令§3 自定义网络 §1 Docker 的网络 §1.1 初识 docker 的网络和虚拟机的网络类似 每个 docker 容器 (类比与虚拟机) 都会配置自己的网络设置 d 阅读全文
posted @ 2025-05-20 14:09
问仙长何方蓬莱
阅读(32)
评论(0)
推荐(0)
摘要:
@目录§1 简介§2 Dockerfile 的构建过程(build) & 构筑端 BuildKit§3 Dockerfile 的使用 & 示例§4 Dockerfile 的格式§5 解析器指令(Parser directives)§5.1 基本信息§5.2 无效解析器指令示例§5.3 syntax 阅读全文
posted @ 2025-05-20 14:07
问仙长何方蓬莱
阅读(35)
评论(0)
推荐(0)
摘要:
@目录§1 镜像§2 主机目录§3 集群部署§4 集群容错和扩容缩容§4.1 容错§4.2 扩容§4.3 缩容 §1 镜像 docker pull redis:6.0.8 §2 主机目录 目录层级遵循 ${prefix}/cluster/host/xx 如: /docker/redis/cluste 阅读全文
posted @ 2025-05-20 14:06
问仙长何方蓬莱
阅读(40)
评论(0)
推荐(0)
摘要:
@目录§1 场景§2 hash 取余算法§3 一致性 hash 算法§3 hash 槽算法 §1 场景 问:海量数据(亿即)作为缓存如何实现(其他持久化组件也适用) 答:肯定是多个缓存实例 问:海量数据是如何存在于多个缓存实例的 答:使数据尽量均匀的落入多个缓存实例中,同时考虑缓存实例数量变更的场景 阅读全文
posted @ 2025-05-20 14:06
问仙长何方蓬莱
阅读(15)
评论(0)
推荐(0)
摘要:
@目录§1 镜像§2 主机目录§3 主从复制部署§3.1 主节点§3.2 从节点§3.3 配置主从§3.4 多主多从 §1 镜像 docker pull mysql:5.7 §2 主机目录 目录层级遵循 ${prefix}/cluster/host/xx 如: /docker/mysql/clust 阅读全文
posted @ 2025-05-20 14:05
问仙长何方蓬莱
阅读(24)
评论(0)
推荐(0)
摘要:
@目录§1 tomcat§2 mysql§3 redis §1 tomcat docker pull tomcat:jdk8-corretto-al2 docker run -d -p 8080:8080 tomcat:jdk8-corretto-al2 §2 mysql docker pull m 阅读全文
posted @ 2025-05-20 14:04
问仙长何方蓬莱
阅读(11)
评论(0)
推荐(0)
摘要:
@目录§1 容器§1.1 docker 容器的运行模式§1.2 docker 容器的端口映射§1.3 docker 容器的退出机制§2 仓库§2 .1 阿里云仓库§2 .2 docker 私有仓库§3 数据卷§4 docker hub其他 §1 容器 §1.1 docker 容器的运行模式 dock 阅读全文
posted @ 2025-05-20 14:03
问仙长何方蓬莱
阅读(43)
评论(0)
推荐(0)
摘要:
@目录§0 官网文档连接§1 docker 服务指令§2 docker 帮助指令§3 镜像指令§3.1 查看本地镜像列表( docker images )§3.2 查找镜像( docker search )§3.3 拉取镜像( docker pull )§3.4 查看空间( docker syste 阅读全文
posted @ 2025-05-20 14:02
问仙长何方蓬莱
阅读(30)
评论(0)
推荐(0)
摘要:
@目录§1 Docker 是什么§2 架构§2.1 官网图§2.2 架构图§2.3 UnionFS(联合文件系统)§3 安装§3.1 前提§3.2 安装§3.3 启动§3.4 卸载§4 镜像加速器 §1 Docker 是什么 docker 是环境的容器 允许应用连同它的依赖、环境等一起打包,并且可以 阅读全文
posted @ 2025-05-20 14:00
问仙长何方蓬莱
阅读(20)
评论(0)
推荐(0)

浙公网安备 33010602011771号