获得徽章 1
- #青训营笔记创作活动#
2月14日 打卡day8
今日学习:刨根问底Redis
Memcache与Redis区别:Memcache采用hash存入内存,LRU清除过期数据
Redis持久化方式:RDB、AOF
Redis常见问题:缓存穿透、缓存击穿、缓存雪崩展开评论点赞 - #青训营笔记创作活动#
2月13日 打卡day7
今日学习:优秀后端应具备的开发好习惯
1.注释
2.项目拆分合理的目录结构
3.不在循环里远程调用或者数据库操作,优先考虑批量进行
4.封装方法形参
5.封装通用模版
6.封装复杂的逻辑判断
7.保持优化性能的嗅觉
8.可变参数的配置化处理
9.总结并使用工具类
10.控制方法函数复杂度
11.在finally块中对资源进行释放
12.把日志打印好
13.考虑异常,处理好异常:RunTimeException不应用catch处理,而是预先检查例如NullPointerException
14.考虑系统、接口的兼容性
15.代码采取措施避免运行时错误
展开评论点赞 - #青训营笔记创作活动#
2月12日 打卡day6
今日学习 UDP与TCP
TCP:面向连接、可靠的、基于字节流
UDP:无连接、不可靠的、基于消息报
重传机制
流量控制机制
滑动窗口机制
拥塞控制
分段机制
乱序重排机制
连接机制
一般会在UDP基础上在应用层做可靠性保证(重传机制)
由于UDP部分段,因此需要重传整个数据包,此情况下比TCP慢展开评论点赞 - #青训营笔记创作活动#
2月11日 打卡day5
今日学习 Kafka科普
消息系统:系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能
存储系统:消息持久化到磁盘
流式处理平台展开评论点赞 - #青训营笔记创作活动#
2月10日 打卡day4
今日学习 MySQL索引之道
索引失效的几种场景:索引不遵循最左匹配原则、索引列使用函数、索引列有计算操作、like左边包含%、使用or、in使用不当、not in和not exists、order by使用不当
不推荐用select *
展开评论点赞 - #青训营笔记创作活动#
1月19日 打卡day3
今日学习:MySQL分库分表
InnoDB中B+树的高度一般保持在三层以内。
页格式:
页是InnoDB存储引擎管理数据库的最小磁盘单位,每个节点16KB也指每页大小16KB。按升序或降序插入索引记录,大约可占用15/16的空间;乱序插入大约1/2到15/16的空间。
溢出页(外部页)的存储:
当使用dynamic创建表时,InnoDB会将较长的可变长度列的值剥离出来,存到一个溢出页上,只在该列上保留一个20字节的指针指向溢出页。展开1点赞 - #青训营笔记创作活动#
1月14日 打卡day2
今日学习 常用IDEA插件
Key Promoter X:当使用鼠标点击某些功能时,该插件会自动提示该功能的快捷键,可以帮助程序员解放鼠标;
Lombok:Java代码功能增强库,可以自动生成getter、setter、equals等方法;
MyBatisX:支持xml和Mapper之间的跳转,自带图形化代码生成器,可以直接根据方法名生成SQL实现;
PlantUML:开源的UML绘制工具,支持通过文本生成图形;
SequenceDiagram:根据代码生成时序图的插件;
GsonFormatPlus:根据Json字符串自动生成实体类的插件,支持Lombok;
Json Parser:Json格式化工具;
String Manipulation:处理字符串的工具;
MapStruct Support:基于Java注解的对象属性映射工具,只需在接口定义好对象属性映射规则,即可自动生成映射实现类,无需反射,性能优秀;
Alibaba Java Coding Guidelines:实时检测代码中不符合手册规约的地方;
Alibaba Cloud Tookit:实现自动化部署;
Docker:支持远程Docker环境的镜像和容器管理,支持使用Docker Compose实现批量部署;
Maven Helper:解决Maven依赖冲突;
Grep Console:对不同级别的日志分别高亮,可通过关键字搜索日志内容;
Markdown:编辑和预览Markdown;
Statistic:统计当前项目中代码的行数和大小;
Vue.js:可根据模版创建.vue文件。
安装太多容易卡。展开评论点赞