基础
- java容器(HashMap)
- JVM(类加载,垃圾收集算法)
- 多线程-同步(AQS,sync)
- IO(BIO,NIO)
- Nginx(负载均衡)
- Git
- Linux(Kill ps-jps 排查问题 crontab linux 查看某个端口的连接数)
框架
- Spring boot(设计模式,启动过程)
- Mybatis(MyBatis面向Mapper编程工作原理)
中间件
- MQ(消息重复消费)
- Kafka
- Redis(缓存穿透,缓存击穿,缓存雪崩,淘汰策略,落地策略)
- RDB: 定时快照方式(snapshot)
- AOF: 基于语句追加文件的方式
实际在进行备份时,Redis 主要依靠 rdbSave() 函数,然后有两个命令会调用这个函数 SAVE 和 BGSAVE,前者会同步调用,阻塞主进程导致会有短暂的 Redis-server 停止工作,后者会 fork 出子进程异步处理。
RPC(Dubbo )
数据库
- mysql(事务的安全问题有哪些 锁级别分类)(索引失效)(Sql优化方式,深度分页)
- READ-UNCOMMITTED(读未提交): 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。
- READ-COMMITTED(读已提交): 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。
- REPEATABLE-READ(可重复读): 对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。
- SERIALIZABLE(可串行化): 最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。