Ekko Blog

路漫漫其修远兮 ,吾将上下而求索

JVM再解读

JVM

[TOC] 1 2 3 4 5 6 7 8 9 10 ┌─────────────────────────────────────────────────────────────┐ │ JVM 运行时数据区 │ ├─────────────┬─────────────┬─────────────────...

架构

实战

[TOC] graph TD A[用户] --> B[DNS轮询/全局负载均衡] B --> C[负载均衡器集群<br>云LB/F5/HAProxy] B --> D[负载均衡器集群<br>云LB/F5/HAProxy] C --> E[Web服务器区] D --> E ...

事务

实战

[TOC] 1 2 3 4 5 6 7 8 9 10 11 12 13 public enum TransactionPhase { // 事务即将提交但尚未提交 BEFORE_COMMIT, // 事务已提交 AFTER_COMMIT, // 事务已回滚 AFTER_ROLLBACK, // 事务完成(无论提交还是回滚) ...

场景题思考

实战

[TOC] 百万级EXCEL读取 1、EasyExcel 基于POI的事件驱动模型,逐行解析,内存占用低 2、Apache POI (SAX模式) 事件驱动、流式读取 3、逐行读取后,及时批量处理,及时释放,因为等完全读取完整个excel的时候,内存也会爆炸 思考一:支持多线程读吗 理论上不支持,核心限制:EasyExcel的读取是顺序流式解析,XML解析器必须按顺序...

零散知识点

实战

[TOC] 问题一:为什么越来越多人喜欢用构造器注入 1、不可变性 (Immutability) 构造器注入强制依赖项为 final,确保对象不可变 清晰的契约:对象创建时所有依赖必须就位 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @Service public class UserService { priva...

mysql查缺

mysql

[TOC] 深分页 limit实现,但是当偏移量特别大的时候,查询效率就变得低下 个人理解:limit 执行策略,先拿到完整结果集,再从结果集中,丢弃前 100w 数据,只返回20条 那么这里就有问题了,完整结果集,要回表,数据量大,必然慢 优化的点:尽量依赖覆盖索引,避免回表。锁定 索引键范围后,再小批量的查询 InnoDB 页 MySQL 的默认存储引擎 Inn...

redis持久化

Redis

[TOC] RDB快照持久化 1 2 3 4 // RDB默认策略 save 900 1 # 900秒(15分钟)内至少有1个键被修改 save 300 10 # 300秒(5分钟)内至少有10个键被修改 save 60 10000 # 60秒(1分钟)内至少有10000个键被修改 RDB文件内容: [魔数] → [版本号] → [可选元数据] → [数据库数据区] ...

redis数据结构

Redis

[TOC] RedisObject 所有 Redis 键值对的统一封装,用于管理数据的类型、编码、引用计数等元信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 typedef struct redisObject { unsigned type:4; // 数据...

Redis汇总

Redis

参考资料 github [TOC] 什么是Redis,Redis有哪些特点 Redis全称为:Remote Dictionary Server(远程数据服务),Redis是一种支持key-value等多种数据结构的存储系统 可用于缓存,事件发布或订阅,高速队列等场景 提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化 特点1:丰富的数据类型 很多数据...

数据库汇总

SQL

[TOC] 当前读、快照读(MVCC)相关点 undolog 在操作数据之前,把需要操作的数据和事务记录备份到undo log中,目的就是为了保证原子性,如果一个事务执行中发生了故障,就可以通过undolog进行回滚 共享锁和排它锁 共享锁(S锁): 共享 (S) 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句 如果事务T仅对数据A进行读取,那么会对数据A加...