Skip to content

2026-03-22 星期一

昨日复习

👌

今日收获

远程服务器配置 redis 数据库

  • 安装、配置文件、配置服务

  • 配置服务器内部防火墙规则,打开控制台安全组配置防火墙入口

  • 重启服务,重载防火墙

  • 遇到了问题:远程连接失败。配置有问题。

    • 检查 redis 监听的地址是否是 0.0.0.0:6379:ss -tulpn | grep redis # 或者 netstat -tulpn | grep 6379
    • 如果是 127.0.0.1:6379 那就只能本地访问,无法远程访问
    • 查看 systemd 服务配置:systemctl cat redis 可以查看到配置文件是哪个
  • :…. 不出所料,出错了是因为配置文件中,原始配置指定了地址,端口,我新加的配置在最上面,原始配置在最下面,被覆盖了。原始配置文件有很多注释,没有往下拉,修改配置。

  • :系统配置了环境变量之后,IDEA 需要重新启动才能读取到环境变量!!!!!

项目环境配置脱敏处理

算法题

  • 72. 编辑距离 不是很理解出来,稍微有点复杂。动规的转化思想

数据库账户问题

  • MySQL 数据库的账户连接时,会匹配 IP 类型。用一个账户有本地连接 (localhost),远程连接(%)的区别。
  • 例如:root 账户下,有 root@localhost ,有 root@% ,这是不同的连接,连接的密码是独立的。也可以创建指定 IP 地址的用户,并配置对于密码,进行单独管理。

项目进度

  • commit × 1
  • 功能设计 ……

面试题


数据库三大范式:

  • 第一范式(1NF):(原子数据。防止数据可以被拆分)要求数据库表的每一列都是不可分割的原子数据项。
  • 第二范式(2NF):(字段绝对依赖主键。不只依赖主键的一部分,联合主键)在 1NF 的基础上,非码属性必须完全依赖于候选码(在 1NF 基础上消除非主属性对主码的部分函数依赖)
  • 第三范式(3NF):(字段直接依赖于主键。不间接依赖)在 2NF 基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

Text 数据类型可以无限大吗?

MySQL 3 种text类型的最大长度如下:4 - 16 - 64 gb - mb - kb

  • TEXT:65,535 bytes = 64kb
  • MEDIUMTEXT:16,777,215 bytes = 16Mb
  • LONGTEXT:4,294,967,295 bytes = 4Gb

mysql 中的一些基本函数:

  • CONCAT(str1, str2, ...):连接多个字符串。常用来做模糊查询时拼接内容
  • LENGTH(str) SUBSTRING(str, pos, len) REPLACE(str, from_str, to_str)
  • POWER(num, exponent) CURDATE()

SQL查询语句的执行顺序:

所有的查询语句都是从 FROM 开始执行,在执行过程中,每个步骤都会生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入,最后一个步骤产生的虚拟表即为输出结果。

(9) SELECT 
(10) DISTINCT <column>,
(6) AGG_FUNC <column> or <expression>, ...
(1) FROM <left_table> 
    (3) <join_type>JOIN<right_table>
    (2) ON<join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(7) WITH {CUBE|ROLLUP}
(8) HAVING <having_condtion>
(11) ORDER BY <order_by_list>
(12) LIMIT <limit_number>;

数据库的执行本质:先拿全量数据→逐步过滤缩小范围→做复杂计算→最后整理输出

巧计执行顺序:

  1. 数据源准备:FROM → ON → JOIN (拼表:先把要查的表拼起来,拿到完整的候选数据集)
  2. 前置行过滤:WHERE (初筛:删掉不符合条件的行,减少后续计算量,效率优先)
  3. 分组聚合 + 后置过滤:GROUP BY → 聚合函数 → WITH → HAVING (分组细筛:先分组,再算聚合值,最后过滤掉不符合条件的分组)
  4. 结果输出处理:SELECT → DISTINCT → ORDER BY → LIMIT (整理:最后选列、去重、排序、截行,输出最终结果)

生活场景类比:(公司评选优秀员工)(拉名单→过门槛→分组→算业绩→去除不达标→确定公示信息→去重→排序→取前几名)

  1. FROM/JOIN/ON:先把全公司员工名单拉出来,跨部门的话就把部门表关联上,拿到所有候选人名单
  2. WHERE:先筛掉不符合基本门槛的人(比如入职不满 1 年),剩下的人再参与评选
  3. GROUP BY:按部门分组,每个部门分开评选
  4. 聚合函数:给每个候选人算业绩总分、考勤得分
  5. HAVING:筛掉业绩不达标的人,比如总分低于 100 分的直接淘汰
  6. SELECT:最后确定要公示的信息,比如姓名、部门、最终得分
  7. DISTINCT去掉重名的重复记录
  8. ORDER BY:按得分从高到低排序
  9. LIMIT:只取前 10 名,公示最终结果

记录学习,分享技术