SpringBoot-遇到的问题
参考文献
SpringBoot之RedisTemplate存取Long类型数据自动变Integer问题
视频播放异常
使用@JsonProperty注解会多出一个字段的原因
SpringBoot项目中正式环境中获取resources目录下报错
错误信息
12345[] 2023-07-04 10:20:51.624 [http-nio-3345-exec-8] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: java.io.FileNotFoundException: class path resource [fronts/Alibaba-PuHuiTi-Medium.ttf] canno ...
读书笔记-Effective MySQL Replication Techniques in Depth - Ronald Bradford
第一章 五分钟成为一名DBA
确定数据库的大小
通过下面的SQL,可以得到当前的数据和索引的总大小(以MB为单位)
12345678SELECT ROUND(SUM(data_length + index_length)/1024/1024) AS total_mb,ROUND(SUM(data_length)/1024/1024) AS data_mb,ROUND(SUM(index_length)/1024/1024) AS index_mbFROM INFORMATION_SCHEMA.tables;+----------+---------+----------+| total_mb | data_mb | index_mb |+----------+---------+----------+| 130 | 87 | 44 |+----------+---------+----------+
选择锁策略
所选择的锁策略将决定在执行备份期间,应用程序是否可以对数据库执行写操作.默认情况下,mysqldump利用LOCK TABLES命令进行 ...
读书笔记-Effective MySQL Optimizing SQL - Ronald Bradford
第一章 DBA五分钟速成
在决定添加索引之前,通常应该至少做两项检查
首先验证表现有的结构
1SHOW CREATE TABLE table_name\G
然后确认表的大小
1SHOW TABLE STATUS LIKE 'table_name'\G
123456789101112131415161718192021mysql SHOW TABLE STATUS LIKE 'user'\G*************************** 1. row *************************** Name: user Engine: InnoDB Version: 10 Row_format: Dynamic Rows: 8 Avg_row_length: 2048 Data_length: 16384Max_data_length: 0 Index_length: 16384 Data_free: 0 Auto_incr ...
看完的书籍
书籍
Java
Java 8实战
Linux
网络是怎样连接的 [日] 户根勤
Linux Shell脚本攻略
鸟哥的Linux私房菜 基础学习篇 第四版 ⭐⭐⭐
Linux Basics for Hackers
Network Basics for Hackers
深入理解Linux网络: 修炼底层内功,掌握高性能原理
本书采用Linux内核3.10版本
MySQL
MySQL技术内幕 InnoDB存储引擎 第2版 ⭐⭐⭐⭐⭐
高性能MySQL(第四版) ⭐⭐⭐⭐⭐
千金良方——MySQL性能优化金字塔法则 ⭐⭐⭐⭐⭐
MySQL排错指南 ⭐⭐⭐
MySQL 8 Cookbook ⭐⭐
Effective MySQL之SQL语句最优化 ⭐⭐
Effective MySQL之备份与恢复
MySQL高效编程
MySQL 8 Cookbook
第7章 备份 / 第8章 恢复数据 / 第9章 复制 / 第10章 表维护 可作为工具书使用
MySQL大智小技 2019
Spring
SpringBoot 2实战之旅
Spring源码深度解析 ⭐⭐⭐
容器化 ...
杂项
学习等级
默读:通过默默阅读来学习,在心中理解和消化知识.默读适合个人独立学习,可以帮助提升阅读理解和知识吸收能力.
听:以听取他人讲解或演示的方式来学习.通过聆听他人的讲解,可以获得更直观的理解和感受,适合针对口语表达、音频材料或演讲内容的学习.
朗读:将学习内容用口说出来,通过声音的输出来加深对知识的理解和记忆.朗读可以帮助加强口语表达和语音语调的练习,并加强对知识点的记忆.
做笔记:将学习过程中的重点、关键信息以及自己的思考记录下来,用文字形式整理和归纳知识.做笔记有助于整理思路、加深对学习内容的理解,并提供学习过程的参考资料.
讨论:与他人一起讨论学习内容,交流观点、思考问题.通过讨论可以从不同的角度得到反馈和启发,拓展思维广度,加深对知识的理解,并培养合作和沟通能力.
教给别人:通过向他人教授所学的知识来学习.当我们试图将知识传授给他人时,需要深入理解和组织知识,以便清晰地讲解给别人,同时也可以通过他人的反馈来检验和完善自己对知识的掌握.
学习方法
MSA方法:
Multi-Dimension:想要掌握一个事物,就要从多个角度去认识它。
Ask:不懂就问,程序员大多都 ...
读书笔记-MySQL是怎样运行的
参考文献
<<MySQL是怎样运行的>> 小孩子4919
第六章 快速查询的秘籍-B+树索引
总结
InnoDB存储引擎的索引是一棵B+树,完整的用户记录都存储在B+树第0层的叶子节点;其他层次的节点都属于内节点,内节点中存储的是目录项记录.
InnoDB的索引分为两种:
聚簇索引: 以主键值的大小作为页和记录的排序规则,在叶子节点处存储的记录包含了表中所有的列
二级索引: 以索引列的大小作为页和记录的排序规则,在叶子节点处存储的记录内容是索引列+主键
InnoDB存储引擎的B+树根节点自创建之日起就不在移动(即根节点所在的页号不会改变).
树的根始终在一个固定的位置,方便快速定位
在二级索引的B+树内节点中,目录项记录有索引列的值,主键值和页号组成.
一个数据页至少可以容纳2条记录.
MyISAM存储引擎的数据和索引分开存储,这种存储引擎的索引全部都是二级索引,在叶子节点处存储的是列+行号(对于定长记录格式的记录来说)
每个索引都对应一棵B+树.B+树分为好多层,最下边一层是叶子节点,其余的是内节点.所有用户记录都存储在B+树的叶子节点,所 ...
读书笔记-数据密集型应用系统设计
参考文献
<<数据密集型应用系统设计>>
基础
可靠性/可扩展性/可维护性
可靠性(Reliability): 当出现意外情况,如硬件/软件故障/人为失误,系统应可以继续正常运转;虽然性能可能有所降低,但确保功能正确.
可扩展性(Scalability): 随着规模的增长,例如数据量/流量/复杂性,系统应以合理的方式来匹配这种增长.
可维护性(Maintainability): 随着时间的推移,许多新的人员参与到系统开发和运维,以维护现有功能或适配新场景等,系统都应高效运转.
可运维性
方便运营团队来保持系统平稳运行.
简单性
简单系统复杂性,使新工程师能后轻松理解系统.注意这与用户界面的简单性并不一样.
可演化性
后续工程师那个轻松对系统进行改进,并根据需求变化将其适配到非典型场景,也称为可延伸性,易修改性或者可塑性.
延迟/响应时间
延迟(latency): 延迟是请求花费在处理上的时间.
响应时间(response time): 通常响应时间是客户端看到的,除了处理请求时间(服务时间,service time)外,还包括来 ...
知识点-名词解释
参考文献
服务器的上行带宽及下行带宽详细说明
名词解释
CSRF
CSRF(Cross-Site Request Forgery),中文名称为跨站请求伪造,是一种网络攻击方式.攻击者利用用户在其他网站已经登录的身份,来伪造用户向特定网站发送请求,从而实现非法操作.
攻击方式通常包括以下几个步骤:
攻击者在自己的网站上放置一个钓鱼网页,利用某些方法(如诱导点击链接、通过广告等方式)诱导用户访问该网页.
该钓鱼网页中会包含一个针对受害者网站的请求,这个请求通常是一个表单提交或者图片链接等.
如果用户访问了该钓鱼网页,并且在自己的电脑上同时也登录了受害者网站,那么当用户提交表单时,攻击者就可以利用用户的身份,伪造一个请求,将数据提交到受害者网站上.
受害者网站会认为该请求是合法的,因为请求中带有用户的身份认证信息,于是就会执行该请求.
为了防止 CSRF 攻击,网站需要采取相应的安全措施.其中比较常见的措施包括使用 CSRF token 防御、检查 Referer 头信息等.此外,用户也应该注意不要随意点击来历不明的链接,以免成为 CSRF 攻击的受害者.
IOPS
IOPS ...
Lua-基础
参考文献
注释
单行注释
两个减号是单行注释:
1--
多行注释
1234--[[ 多行注释 多行注释 --]]
关键词
以下列出了 Lua的保留关键词.保留关键字不能作为常量或变量或其他用户自定义标示符:
and
break
do
else
elseif
end
false
for
function
if
in
local
nil
not
or
repeat
return
then
true
until
while
goto
一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION)被保留用于 Lua内部全局变量.
数据类型
Lua是动态类型语言,变量不要类型定义,只需要为变量赋值. 值可以存储在变量中,作为参数传递或结果返回.
Lua中有 8 个基本类型分别为: nil、boolean、number、string、userdata、function、thread 和 table.
数据类型
描述
nil
这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false).
...
Linux-常用环境配置
参考文献
Ubuntu基本环境配置
Ubuntu
具体配置(以Ubuntu18.04为例)
配置apt源
修改为阿里apt源
https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.709c1b11miR2ke
12345# 备份旧源sudo cp /etc/apt/sources.list /etc/apt/sources.list.old# 填充以下内容vim /etc/apt/sources.list
123456789101112131415deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ bionic-security main ...